我在应用程序的数据目录中为我的应用程序在android中创建数据文件。写入成功,没有例外,但文件内容不完整。它截断为90112字节。知道发生了什么事吗?有限制吗?
这是片段
try {
fos = parentActivity.openFileOutput(mmCacheFName,
Context.MODE_PRIVATE | Context.MODE_APPEND);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bosw = new BufferedWriter(osw);
int indx = lastIndx - 10;
while (indx >= 0) {
IEventHolder ev = deltaList.get(indx);
bosw.write(ev.getRawData() + "\n");
indx--;
}
osw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Throwable t) {
t.printStackTrace()
} finally {
try {
if (fos != null)
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:2)
可能有很多原因。如果您发送代码,则更容易跟踪问题。但你可以查一下:
您在写入文件时已关闭了Stream(建议您在finally块中执行此操作),如下所示:
尝试{ .... 使用一些outputStream将数据写入文件 }最后{ outputStream.close(); }
如果要在关闭流之前读取数据,请确保输出流不缓冲输出。如果是,则在读取数据之前,将输出刷新到文件:
outputStream.flush();
检查可能被捕获但未记录的任何异常,这些代码如下:
尝试{ ... } catch(IOException ex){ //这里必须记录异常。 }
}
答案 1 :(得分:0)
感谢您的回复。我弄清楚问题是什么,我应该刷新并关闭BufferedWriter而不是OutputStreamWriter。再次感谢