如何将Edittext中的信息保存到android中的原始文件

如何将Edittext中的信息保存到android中的原始文件,android,android-activity,android-edittext,Android,Android Activity,Android Edittext,我正在努力学习如何使用edittext保存对file.txt的更改。到目前为止,我的代码允许我打开文本文件,但在关闭它时,它不会保存所做的更改。文本文件正在被打开到另一个活动中,当方向发生变化时,如果最小化,文本文件将保存这些变化。我尝试了大量不同的解决方案,但我无法了解如何存储所做的更改 public class Editor extends Activity { private String Text; private String Folder; private String toast;

我正在努力学习如何使用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;
}

这可能是您正在寻找的:

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名称。

如果要执行读取操作,请使用
InputStream

如果要执行写入操作,请使用
outputstream


以下是将编辑器更改为EditText时出现的错误。错误是无法对非静态线程进行静态引用。我尝试创建:EditText=edit;EditText是版面上的文本框,其中包含要保存到文件中的信息,除非您没有让用户输入自己的数据,否则您不会有EditText文本框。您可以将EditText定义为:
EditText myText=(EditText)findViewById(R.id.name_of_EditText_from_layout_xml)天哪,谢谢。我已经看了几个小时,试图把它整理出来,它终于起作用了