数据文件的限制是90112字节?

时间:2010-10-13 11:18:51

标签: android

我在应用程序的数据目录中为我的应用程序在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();
            }
        }

2 个答案:

答案 0 :(得分:2)

可能有很多原因。如果您发送代码,则更容易跟踪问题。但你可以查一下:

  1. 您在写入文件时已关闭了Stream(建议您在finally块中执行此操作),如下所示:

    尝试{ .... 使用一些outputStream将数据写入文件 }最后{       outputStream.close(); }

  2. 如果要在关闭流之前读取数据,请确保输出流不缓冲输出。如果是,则在读取数据之前,将输出刷新到文件:

    outputStream.flush();

  3. 检查可能被捕获但未记录的任何异常,这些代码如下:

    尝试{     ... } catch(IOException ex){     //这里必须记录异常。 }

  4. }

答案 1 :(得分:0)

感谢您的回复。我弄清楚问题是什么,我应该刷新并关闭BufferedWriter而不是OutputStreamWriter。再次感谢