1
我從String創建了多個文件。將多個文件保存爲ZIP而不保存它們並將它們讀入
例如4個字符串;一個是xml,另一個是csv格式。
我的問題是,我必須先將這些字符串保存到文件中,然後再讀取它,然後寫出到ZipOutputStream?看起來真的有點浪費。
預先感謝
我從String創建了多個文件。將多個文件保存爲ZIP而不保存它們並將它們讀入
例如4個字符串;一個是xml,另一個是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();
}
希望這可以幫助別人
非常類似的問題:http://stackoverflow.com/questions/357851/in-java-how-to-zip-file-from-byte-array – JeffS
http://stackoverflow.com/questions/9766420/how-to-send-zip-file-without-creating-it-on-physical-location 此鏈接可能會有幫助 – Rejinderi