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

これがあなたの解決策の1つです

于 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 に答える