我正在从字符串创建多个文件。
例如4个字符串;一个是 xml 格式,一个是 3 个 csv 格式。
我的问题是我是否必须先将这些字符串保存到一个文件中,然后再读取它,然后再写入 ZipOutputStream?只是看起来真的有点浪费。
提前致谢
我正在从字符串创建多个文件。
例如4个字符串;一个是 xml 格式,一个是 3 个 csv 格式。
我的问题是我是否必须先将这些字符串保存到一个文件中,然后再读取它,然后再写入 ZipOutputStream?只是看起来真的有点浪费。
提前致谢
因此,这是我无需创建物理文件即可保存多个文件的解决方案。注意字符串大小。
for (int i =0; i <stringArray.size();i++) {
String outString = stringArray.get(i);
String fileName = null;
if (i == 0) {
fileName = "StringOne.xml";
} else if (i == 1) {
fileName = "StringTwo.csv";
} else if (i ==2) {
fileName = "StringThree.csv";
} else if (i == 3) {
fileName = "StringFour.csv";
}
Log.d("ZipCreation", "Creating "+fileName);
// SAVE THE STRING AS A BYTE ARRAY IN MEMORY INSTEAD OF CREATING AND SAVING TO A NEW FILE
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream byteOut = new DataOutputStream(baos);
byte[] data = stringArray.get(i).getBytes("UTF-8");
byteOut.write(data);
byteOut.close();
byte[] input = baos.toByteArray();
ZipEntry entry = new ZipEntry(fileName);
entry.setSize(input.length);
zos.putNextEntry(entry);
zos.write(input);
zos.closeEntry();
}
希望这可以帮助某人