当前位置: 首页 > 面试题库 >

java:将字符串另存为gzip文件

景远航
2023-03-14
问题内容

我初学java,我需要像这样:

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
  • 包裹GZIPOutputStreamOutputStreamWriter使用适当的字符集(例如UTF-8)
  • 将文字写到 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如果一切都成功了,我们仍然需要关闭,以便刷新所有内容并完成数据的写入。



 类似资料:
  • 问题内容: 我一直在尝试使用 GZIPOutputStream 等,但在理解它们方面没有成功。我要做的就是将字符串- “字符串” 转换为GZIP Base64格式。我怎样才能做到这一点? 编辑: 通过GZIP Base64格式,我的意思是字符串首先使用GZIP压缩,然后转换为Base64 问题答案: 使用Apache Commons Codec 。 这是一个示例类: 哪个输出: 在Linux下,您

  • 我有一个对象,它的父类可以设置_id字段,也可以不设置。 在这种情况下,没有设置_id字段,我将一个对象传递给 收集insertOne(对象) 通常情况下,mongo会为未指定的_id生成一个ObjectId(),但由于某种原因,每当_id由父类指定且未设置时,它会生成一个id,bug会将id保存为数据库中的字符串,而不是ObjectId。 我所经历的 {“name”:“name”} 预期: {“

  • 我能够生成公钥/私钥对,并在它们之间加密/解密。现在,我需要将PGP公钥的字符串版本发送给其他人,但我正在努力解决如何最好地做到这一点。 要获取公钥,我使用: 我可以访问k,这是PgpPublicKey类的一个实例。 它提取的文件基本上是jibberish,它是公钥的字节表示。我需要您通常会在人与人之间复制和粘贴的字符串版本。 我怎么能在这里这么做? 谢谢

  • 当我使用console.log(req.body)时。上面写着 但看起来应该是: 你知道问题所在吗?我的HTML看起来像: 我的猫鼬模型是: 这是我的路线: 我想把它嵌入到一个ejs文件中。

  • 问题内容: 我需要将一个String拆分为单个字符String的数组。 例如,拆分“ cat”将得到数组“ c”,“ a”,“ t” 问题答案: 这将产生

  • 编程相对较新。我想读取一个URL,修改文本字符串,然后将其写入以行分隔的csv文本文件。 阅读 但我无法将相同的字符串写入文件——它只会变成一行(请参阅下面的循环,尝试1) 我想我正在寻找一种方法,在FileWriter或BufferedWriter循环中,将字符串finalDataA转换为数组字符串(即包括字符串后缀[0]),但我还没有找到这样一种方法,不会给出类型“不能”的错误将String转