0

我正在使用此代码写入文件。

        protected void writeFile(String text) {
            DataOutputStream os = null;
            FileConnection fconn = null;
                try {
                    fconn = (FileConnection) Connector.open("file:///store/home/user/documents/file.txt", Connector.READ_WRITE);
                    if (!fconn.exists())
                        fconn.create();
                    os = fconn.openDataOutputStream();
                    os.write(text.getBytes());
                } catch (IOException e) {
                    System.out.println(e.getMessage());
                } finally {
                    try {
                        if (null != os)
                            os.close();
                        if (null != fconn)
                            fconn.close();
                    } catch (IOException e) {
                        System.out.println(e.getMessage());
                    }
            }}

代码工作正常。

我的问题是,如果我第一次写“Banglore”,当我读到它时,我会得到“Banglore”。但是,当我第二次写“印度”时,当我读到它时,我得到了“Indialore”。所以,基本上它的内容不会根据文字而改变,我正在给。请告诉我如何解决这个问题。

4

1 回答 1

3

写入文件不会删除内容,而只是替换内容,因此在 'Bangalore' 上写入 'india' 会将 'Banga' 替换为 'India',其余部分保持不变。如果您想用较新的内容完全删除旧内容,则需要truncate() 新数据结束处的文件。truncate(text.getBytes().length)

于 2013-04-17T06:42:45.347 回答