java:将字符串保存为gzip文件 [英] java: save string as gzip file

查看:400
本文介绍了java:将字符串保存为gzip文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是java初学者,我需要像

  String2GzipFile(String file_content,String file_name)
String2GzipFile(Lorem ipsum dolor sit amet,consectetur adipiscing elit。 .txt.gz)

我无法弄清楚如何做。

解决方案

这里有两个正交的概念:




  • 通常通过 OutputStreamWriter

  • 压缩二进制数据,例如使用 GZIPOutputStream



p>


  • 创建一个 OutputStream ,它写入到任何你想要的结果内存 ByteArrayOutputStream

  • 在<$ c $中包含 OutputStream c> GZIPOutputStream

  • GZIPOutputStream 包含在 OutputStreamWriter 使用适当的字符集(例如UTF-8)

  • 将文本写入 OutputStreamWriter

  • 关闭作者,会刷新并关闭所有其他内容。



例如:



FileOutputStream output = new FileOutputStream(fileName);
try {
Writer writer = new OutputStreamWriter(new GZIPOutputStream(output) 8));
try {
writer.write(text);
} finally {
writer.close();
}
} finally {
output.close();
}

请注意,我正在关闭输出即使我们无法创建写入器,但如果一切都成功,我们仍然需要关闭 writer ,以便刷新所有内容并完成数据写入。 / p>

I'm java beginner, I need something like this:

String2GzipFile (String file_content, String file_name)
String2GzipFile("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "lorem.txt.gz")

I cant figure out how to do that.

解决方案

There are two orthogonal concepts here:

  • Converting text to binary, typically through an OutputStreamWriter
  • Compressing the binary data, e.g. using GZIPOutputStream

So in the end you'll want to:

  • Create an OutputStream which writes to wherever you want the result (e.g. a file or in memory via a ByteArrayOutputStream
  • Wrap that OutputStream in a GZIPOutputStream
  • Wrap the GZIPOutputStream in an OutputStreamWriter using an appropriate charset (e.g. UTF-8)
  • Write the text to the OutputStreamWriter
  • Close the writer, which will flush and close everything else.

For example:

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();
 }

Note that I'm closing output even if we fail to create the writer, but we still need to close writer if everything is successful, in order to flush everything and finish writing the data.

这篇关于java:将字符串保存为gzip文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆