OutputStreamWriter
本身不支持数据压缩,但你可以结合 GZIPOutputStream
或其他压缩库来实现数据的压缩输出。下面是一个使用 GZIPOutputStream
和 OutputStreamWriter
实现数据压缩输出的示例:
import java.io.*;
import java.util.zip.GZIPOutputStream;
public class CompressedOutput {
public static void main(String[] args) {
String inputText = "This is a test text for compression.";
try {
// 创建一个文件输出流
FileOutputStream fos = new FileOutputStream("compressed_output.gz");
// 创建一个 GZIP 输出流,将数据压缩后写入文件输出流
GZIPOutputStream gzos = new GZIPOutputStream(fos);
// 创建一个 OutputStreamWriter,将字符数据转换为字节数据并写入 GZIP 输出流
OutputStreamWriter osw = new OutputStreamWriter(gzos, "UTF-8");
// 将输入文本写入 OutputStreamWriter
osw.write(inputText);
// 关闭资源
osw.close();
gzos.close();
fos.close();
System.out.println("Compressed output file created successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先创建了一个 FileOutputStream
,然后使用 GZIPOutputStream
对其进行包装,以便将数据压缩后写入文件。接下来,我们创建了一个 OutputStreamWriter
,将字符数据转换为字节数据并写入 GZIPOutputStream
。最后,我们将输入文本写入 OutputStreamWriter
,并关闭所有资源。
运行此程序后,会在当前目录下生成一个名为 compressed_output.gz
的压缩文件。你可以使用支持 GZIP 格式的解压缩工具(如 WinRAR、7-Zip 等)打开该文件,查看其中的内容。