String から複数のファイルを作成しています。
たとえば、4 つの文字列。1 つは xml 形式、3 つは csv 形式です。
私の質問は、まずこれらの文字列をファイルに保存してから、それを読み取ってから ZipOutputStream に書き出す必要がありますか? 本当に少し無駄に思えます。
前もって感謝します
String から複数のファイルを作成しています。
たとえば、4 つの文字列。1 つは 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();
}
これが誰かを助けることを願っています