【问题标题】:OutputStreamWriter does not appendOutputStreamWriter 不追加
【发布时间】:2014-10-13 17:26:08
【问题描述】:

原始代码及其将数据保存到 SD 卡的工作原理

// Writing data to internal storage
btnSaveData.setOnClickListener(new View.OnClickListener() {

 @Override
 public void onClick(View v) {
   if (isSDCardWritable()) {
      String dataToSave = etData.getText().toString();
         try {
         // SD Card Storage
         File sdCard = Environment.getExternalStorageDirectory();
         File directory = new File(sdCard.getAbsolutePath()+"/MyFiles");
         directory.mkdirs();
         File file = new File(directory, "text.txt");
         FileOutputStream fos = new FileOutputStream(file);
         OutputStreamWriter osw = new OutputStreamWriter(fos);

         // write the string to the file
         osw.write(dataToSave);
         osw.flush();
         osw.close();
         . . . 

然后我根据我的需要更改了代码以附加一个新值:

            osw.append(dataToSave);
            osw.flush();
            osw.close();

问题是:它覆盖了文本文件而不是追加。我错过了什么?感谢您的帮助

【问题讨论】:

    标签: android text-files android-sdcard fileoutputstream


    【解决方案1】:

    构造函数 FileOutputStream( File file ) 总是覆盖文件。如果要附加到文件,则必须使用更通用的构造函数 FileOutputStream( File file, boolean append )。如果您将参数 'append' 设置为 true,则文件不会被覆盖。

    【讨论】:

    • 谢谢你,这救了我。我会尽快接受答案。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    相关资源
    最近更新 更多