Задача. Есть папка на 50 гигабайт, её нужно максимально сжать. Использую apache commons compress.
Снизу метод с помощью которого добавляю файлы
private static void addToArchiveCompression(SevenZOutputFile out, File file, String dir) throws IOException {
String name = dir + File.separator + file.getName();
if (file.isFile()){
SevenZArchiveEntry entry = out.createArchiveEntry(file, name);
entry.setContentMethods(Arrays.asList(new SevenZMethodConfiguration(SevenZMethod.DEFLATE, 9)));
out.putArchiveEntry(entry);
FileInputStream in = new FileInputStream(file);
byte[] b = new byte[1024];
int count = 0;
while ((count = in.read(b)) > 0) {
out.write(b, 0, count);
}
out.closeArchiveEntry();
} else if (file.isDirectory()) {
File[] children = file.listFiles();
if (children != null){
for (File child : children){
addToArchiveCompression(out, child, name);
}
}
} else {
LOG.error(file.getName() + " is not supported");
}
}
Тестирую на 150мб папке, после выполнения кода ужимается на 148мб. Сжимая через программу 7z сжимает до 28мб. Возможно ли добиться того же результата?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Решал простою задачу на Java, и столкнулся с тем что программа некорректно выводит данные
В Spring MVC приложении я имею упрощенную модель следующего видаКласс User, у которого есть список файлов:
Есть программа, которая работает, но числа long очень долго думает, а иногда и не все выписываетУсловия : программа должна работать пока не вводится...