我的问题的前提是我创建了一个永远不应该写入磁盘的ini文件,但是这个“文件”需要以某种方式压缩,另外这个文件需要写在一个文件夹中,而不是压缩文件中的平面,例如文件夹/file.ini。
我最初的想法是仅将此文件创建到 ByteArrayOutputStream 中,这将满足文件不写入磁盘的要求。
但是,在压缩文件时,我认为它需要存在于磁盘上,即使只是提供一个文件名。
有没有办法可以做到这一点?
我的问题的前提是我创建了一个永远不应该写入磁盘的ini文件,但是这个“文件”需要以某种方式压缩,另外这个文件需要写在一个文件夹中,而不是压缩文件中的平面,例如文件夹/file.ini。
我最初的想法是仅将此文件创建到 ByteArrayOutputStream 中,这将满足文件不写入磁盘的要求。
但是,在压缩文件时,我认为它需要存在于磁盘上,即使只是提供一个文件名。
有没有办法可以做到这一点?
是的,您可以使用ZipOutputStream 之类的东西 -
ZipOutputStream zs = null;
try {
zs = new ZipOutputStream(os); // Where os is your ByteArrayOutputStream
ZipEntry e = new ZipEntry(fileName); // fileName is your file (in the zip)
zs.putNextEntry(e);
zs.write(theContent); // theContent is the the file content.
} finally {
if (zs != null) {
zs.close();
}
}