【问题标题】:Android save to file.txt appendingAndroid 保存到 file.txt 附加
【发布时间】:2015-02-09 11:28:05
【问题描述】:

诚然,我仍在学习,并且认为自己(充其量)是编程方面的新手。我在android中附加文件时遇到问题。每当我保存时,它都会重写文件,我无法理解如何保留已经存在的文件并且只添加一个新行。希望有一些清晰/建议。这是我保存到文件的方式(每次保存时都会重写文件)。

public void saveText(View view){

    try {
        //open file for writing
        OutputStreamWriter out = new OutputStreamWriter(openFileOutput("save.txt", MODE_PRIVATE));

        //write information to file
        EditText text = (EditText)findViewById(R.id.editText1);
        String text2 = text.getText().toString();
        out.write(text2);
        out.write('\n');

        //close file

        out.close();
        Toast.makeText(this,"Text Saved",Toast.LENGTH_LONG).show();

    } catch (java.io.IOException e) {
        //if caught
        Toast.makeText(this, "Text Could not be added",Toast.LENGTH_LONG).show();
    }
}

【问题讨论】:

    标签: android append filewriter


    【解决方案1】:

    改变这个,

    OutputStreamWriter out = new OutputStreamWriter(openFileOutput("save.txt", MODE_PRIVATE));
    

    到,

    OutputStreamWriter out = new OutputStreamWriter(openFileOutput("save.txt", Context.MODE_APPEND));
    

    这会将您的新内容附加到现有文件中。

    希望对你有帮助!

    【讨论】:

    • 是的。所以, MODE_APPEND 是我的问题。非常感谢
    【解决方案2】:

    使用此方法,传递文件名和要添加到文件中的值

    public void writeFile(String mValue) {
    
        try {
            String filename = Environment.getExternalStorageDirectory()
                    .getAbsolutePath() + mFileName;
            FileWriter fw = new FileWriter("ENTER_YOUR_FILENAME", true);
            fw.write(mValue + "\n\n");
            fw.close();
        } catch (IOException ioe) {
        }
    
    }
    

    【讨论】:

      【解决方案3】:

      要使用换行符显示已保存文件的内容,请单击按钮:

           b2.setOnClickListener(new View.OnClickListener() {
      
                      @Override
                      public void onClick(View v) {
                          try {
                              FileInputStream fin = openFileInput(fileTitle);
                              int c;
                              String temp = "";
      
                              while ((c = fin.read()) != -1) {
                                  temp = temp + Character.toString((char) c);
                              }
                              tv.setText(temp);
      
      
      
      
                              Toast.makeText(getBaseContext(), "file read", Toast.LENGTH_SHORT).show();
                          } catch (Exception e) {
                          }
                      }
                  });
      

      删除现有文件的内容并保留您可以使用的文件名:

          deleteOrder.setOnClickListener(new View.OnClickListener() {
      
          @Override
          public void onClick(View v) {
              try {
                  FileOutputStream fOut = openFileOutput(fileTitle,MODE_PRIVATE);
                 // fOut.write(data.getBytes());
                  dataTitle = "";
                  fOut.write(data.getBytes());
                  fOut.close();
              }
              catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
           });
      

      【讨论】:

        【解决方案4】:

        这对我有用。获取名为 textTitle 的 TextEdit 的内容。将其写入名为 dataTitle 的文件。然后用 fOut.write("\n") 写一个新行。输入到 TextEdit 的下一个文本将添加到文件中并带有换行符。

          try {
                        FileOutputStream fOut = openFileOutput(fileTitle,MODE_APPEND);
                        fOut.write(dataTitle.getBytes());
                        fOut.write('\n');
                        fOut.close();
        
                        Toast.makeText(getBaseContext(),"file saved",Toast.LENGTH_SHORT).show();
                    }
                    catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
        

        【讨论】:

          猜你喜欢
          • 2022-08-16
          • 1970-01-01
          • 1970-01-01
          • 2011-05-26
          • 2020-02-07
          • 2020-09-09
          • 1970-01-01
          • 2013-05-15
          • 2012-09-28
          相关资源
          最近更新 更多