1

我有文件写入问题。我想创建按钮的 OnClick 方法,该方法将行添加到 sdcard 上的文件,但它会删除前一行并将所有内容放在当前行的位置。结果我只得到了我在最后一次点击按钮时输入的文本,这是我的代码:

if (txtFile.createNewFile() || txtFile.isFile()) {
                        FileOutputStream fOut = null;
                        try {
                            fOut = new FileOutputStream(txtFile);
                        } catch (FileNotFoundException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
                        BufferedWriter bwriter = new BufferedWriter(myOutWriter);
                        EditText desc__ = (EditText)findViewById(R.id.descriptionEditTExt);
                        try {
                            bwriter.newLine();
                            bwriter.write(lat+"|"+lng+"|"+desc__.getText().toString()+"|"+f+"|"+position);

                            bwriter.close();
                            myOutWriter.close();
                            fOut.close();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    } else {
                        /* handle directory here */
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
4

1 回答 1

2

请将您的FileOutputStream构造函数重写为

FileOutputStream fos = new FileOutputStream(file, true);

这里建议您的文件将以附加模式打开,这将解决您的第一个问题..

其次,如果您想在文件中添加新行,请使用"\r\n"字符串

e.g. fos.write("\r\n".getBytes());

希望这可以帮助..

于 2012-10-27T19:31:59.640 回答