我尝试将文件压缩为gzip格式。 源文件的文件格式/扩展名不会保留在压缩的.gz文件中。
我使用以下java代码来压缩文件。
如果.gz
toFile = test.csv.gz
文件中获取文件格式
但如果toFile = test.gz
我担心的是我不想在gzip
文件的名称中使用源文件格式。
代码:
public void gzipFile(String fromFile, String toFile) throws IOException {
GZIPOutputStream out = null;
BufferedInputStream in = null;
try {
// Open the input file
in = new BufferedInputStream(new FileInputStream(fromFile));
// Create the GZIP output stream
out = new GZIPOutputStream(new BufferedOutputStream(new FileOutputStream(toFile)));
// Transfer bytes from the input file to the GZIP output stream
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
//Complete the entry
out.flush();
in.close();
File newFile = new File(toFile.replace(".log", ""));
System.out.println(newFile);
File file = new File(toFile);
file.renameTo(newFile);
} catch (IOException e) {
// log and return false
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
// Complete the GZIP file
out.finish();
out.close();
}
} catch (IOException ignore) {
}
}
}