У меня есть .xlsx файл (или любой файл), который я хотел бы gzip. Я могу gzip файл, но теперь у меня проблема с попыткой сделать это на месте. Значение для замены исходного файла на gzipped версию файла.Как заменить gzip на место Java
Вот мой код:
public static void main(String[] args) throws IOException {
File file = new File("test.xlsx");
File gfile = new File(file.getAbsolutePath()+".gz");
if(!file.exists()) {
System.err.println("Input tax file did not exist!");
}
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(gfile);
GZIPOutputStream gos = new GZIPOutputStream(fos);
gzipReplace(fis, gos);
}
private static void gzipReplace(InputStream is, OutputStream os) {
int oneByte;
try {
while((oneByte = is.read()) != -1) {
os.write(oneByte);
}
os.close();
is.close();
} catch (Exception e){
System.err.println(e.getStackTrace());
}
}
Как я могу сделать замену на месте несжатого файла с сжат GZIP один?
Я должен подумать, что, поскольку вы используете текстовый файл для создания файла gzip, вы просто не можете его переписать сразу, но я уверен, что вы можете сделать это после того, как сжатие «успешно» завершилось просто перемещением или удалить текстовый файл. – DevilsHnd
Я хочу, чтобы он был общим для работы с любым типом файла, txt был всего лишь примером. Я уточню детали на свой вопрос. Я сделаю это примерно для 2 миллионов файлов. Таким образом, пространство будет представлять собой проблему, поскольку процесс выполняется, но замена на месте будет лучшим решением и быстрее, чем добавление процедуры удаления исходного файла –