0
我有一個方法,我有一個String對象的數組,我需要寫入一個ByteArrayOutputStream,稍後我將寫入ZipOutputStream。OutOfMemoryError雖然寫字符串ByteArrayOutputStream
這是我的代碼。
// 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;
if (i == 1) {
if (nodeStringArray != null) {
for (String s : nodeStringArray) {
byteOut.write(s.getBytes("UTF-8"));
}
}
} else {
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();
的問題是,我也只能在崩潰報告收到了它,我越來越對讀取byteOut.write(s.getBytes("UTF-8"));
任何人都知道這樣做的更好的方法或可以看到,如果行的OutOfMemoryError
我做錯了什麼?
IDEA
我可以把周圍的問題,嘗試catch語句,當它發生的呼叫byteOut.flush()
?
預先感謝
我喜歡簡單的 – StuStirling 2013-02-22 13:22:05