0

我正在努力解决如何使用edittext将更改保存到我的file.txt。到目前为止,我的代码将允许我打开文本文件,但是在关闭它时,它不会保存所做的更改。文本文件正被打开到另一个活动中,并且在方向改变和最小化时将保存更改。我已经尝试了很多不同的解决方案,但我无法理解如何存储所做的更改。

public class Editor extends Activity {
private String Text;
private String Folder;
private String toast;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_editor);
    Bundle extras = getIntent().getExtras(); 
    this.Text = extras.getString ("txt");
    this.Folder = extras.getString("s");
    this.toast = (Folder + "/" + Text);
    Toast.makeText(this, toast, Toast.LENGTH_SHORT).show();
    File sdcard = Environment.getExternalStorageDirectory();
    File file = new File(sdcard + "/NoteTaker/" + Folder + "/" + Text);
    StringBuilder text = new StringBuilder();
    try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;
    while ((line = br.readLine()) != null) {
    text.append(line);
    text.append('\n');
    }
    }
    catch (IOException e) {
    }
    TextView tv = (TextView)findViewById(R.id.editText1);
    tv.setText(text);
    getActionBar().setDisplayHomeAsUpEnabled(true);

}   

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_editor, menu);
    return true;
}
4

2 回答 2

1

如果您正在执行读取操作,请使用InputStream

或者

如果您正在执行写操作,请使用OuptputStream

这是您的解决方案之一

于 2013-03-27T16:09:30.320 回答
0

这可能是您正在寻找的:

public void onPause(){
    super.onPause();

    try{
        OutputStreamWriter out=new OutputStreamWriter(openFileOutput(NOTES, 0));

        out.write(editor.getText().toString());
        out.close();
    }
    catch (Throwable t) {
        Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show();
    }
}

您需要将 NOTES 变量更改为您的 file_name.txt 并将编辑器更改为您的 EditText 名称。

于 2013-03-27T15:55:39.750 回答