应用关闭并打开时保存并读取txt文件

时间:2018-01-17 11:50:52

标签: java android file

现在我有了一个应用程序,可以通过按钮将一些文本保存并读入.txt文件。如果应用程序关闭并在应用程序自动打开时读取文件,如何在不点击任何按钮的情况下创建该应用程序保存文件?

public class mAcitivity extends AppCompatActivity {

private Button btn_read, btn_save;
private TextView textView;
private String txt = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    btn_save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            saveFile();
        }
    });
    btn_read.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            readFile();
            textView.setText(txt);
        }
    });
}
public String readFile() {
    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/TEST");
    myDir.mkdirs();
    File file = new File(myDir, "file.txt");
    try {

        FileInputStream fis = new FileInputStream(file);
        int size = fis.available();
        byte[] buffer = new byte[size];
        fis.read(buffer);
        fis.close();
        txt = new String(buffer);
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(mActivity.this, "Error reading file", Toast.LENGTH_LONG).show();
    }
    return txt;
}

public void saveFile() {
    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/TEST");
    myDir.mkdirs();
    File file = new File(myDir, "file.txt");
    if (file.exists()){ file.delete();}
    try {
        String sometxt = "Hello world";
        FileOutputStream out = new FileOutputStream(file);
        PrintWriter pw = new PrintWriter(out);
        pw.println(sometxt);
        pw.flush();
        pw.close();
        out.flush();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();

    }
}
}

2 个答案:

答案 0 :(得分:0)

您可以使用MainActivity生命周期回调直接开始I / O操作,也可以启动BoundService来操作它们。

答案 1 :(得分:0)

您可以通过将saveFile()方法放在stop()生命周期方法中,并将readFile()方法放在start()生命周期方法中来实现。应用程序启动后,Activity将自动调用start()方法,一旦应用程序关闭/终止,它将调用stop()方法。