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.
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:
OutputStreamWriter
GZIPOutputStream
So in the end you'll want to:
OutputStream
which writes to wherever you want the result (e.g. a file or in memory via a ByteArrayOutputStream
OutputStream
in a GZIPOutputStream
GZIPOutputStream
in an OutputStreamWriter
using an appropriate charset (e.g. UTF-8)OutputStreamWriter
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.
Have a look at GZIPOutputStream - you should be able to use this in exactly the same way as any other outputstream to write to a file - it'll just automatically write it in the gzip compressed format.
Same solution as Jon, just used try with resources
try ( FileOutputStream output = new FileOutputStream("filename.gz");
Writer writer = new OutputStreamWriter(new GZIPOutputStream(output), "UTF-8")) {
writer.write("someText");
}