我是Java初学者,我需要类似this的内容:
String2GzipFile (String file_content, String file_name)
String2GzipFile("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "lorem.txt.gz")
我不知道该怎么做。
最佳答案
这里有两个正交的概念:
OutputStreamWriter
将文本转换为二进制GZIPOutputStream
因此,最终您将要:
OutputStream
,它会写入到您想要结果的任何位置(例如,通过ByteArrayOutputStream
写入文件或内存中)OutputStream
包装在GZIPOutputStream
中GZIPOutputStream
包装在OutputStreamWriter
中OutputStreamWriter
例如:
FileOutputStream output = new FileOutputStream(fileName);
try {
Writer writer = new OutputStreamWriter(new GZIPOutputStream(output), "UTF-8");
try {
writer.write(text);
} finally {
writer.close();
}
} finally {
output.close();
}
请注意,即使我们无法创建书写器,我也会关闭
output
,但是如果一切成功,我们仍然需要关闭writer
,以便刷新所有内容并完成数据写入。