String (@NotNull final String endsWith) { try { return processStream(new StreamProcessor<>() { @Override public String consume(@NotNull ZipInputStream stream) throws IOException { ZipEntry entry; while ((entry = stream.getNextEntry()) != null) { if (entry.getName().endsWith(endsWith)) { return new String(stream.readAllBytes(), StandardCharsets.UTF_8); } } return null; } }); } catch (IOException ignored) { return null; } }