Android实现文件保存数据,读取数据
程序员文章站
2022-07-12 13:11:21
...
首先在布局文件里面创建一个EditText id为edit
然后开始写java文件
package com.yan.filesave; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.widget.EditText; import android.widget.Toast; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; /** * 存储瞬时数据到文件里面,退出程序后 * 当你打开程序的时候,自动取出文件里面数据,并且填充到对应的视图里面 */ public class MainActivity extends AppCompatActivity { private EditText edit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edit=(EditText)findViewById(R.id.edit); //读取文件 load()为读取文件的方法 String inputText=load(); //读取文件后设置edittext的值 //判断是否为null或者空 if(!TextUtils.isEmpty(inputText)){ edit.setText(inputText); edit.setSelection(inputText.length());//移动光标到末尾以便继续输入 Toast.makeText(this, "Restoring succeded", Toast.LENGTH_SHORT).show(); } } private String load() { FileInputStream in=null; BufferedReader reader=null; StringBuilder content=new StringBuilder(); try { in=openFileInput("data"); reader=new BufferedReader(new InputStreamReader(in)); String line=""; //一行一行读取 while((line=reader.readLine())!=null){ content.append(line); } } catch (IOException e) { e.printStackTrace(); }finally { if(reader!=null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); } @Override protected void onDestroy() { super.onDestroy(); //在回收的时候先存储数据到文件 String inputText=edit.getText().toString(); save(inputText); } /** * 存储文件的方法 * @param inputText */ private void save(String inputText) { FileOutputStream out=null; BufferedWriter writer=null; try { out=openFileOutput("data", Context.MODE_PRIVATE); writer=new BufferedWriter(new OutputStreamWriter(out)); writer.write(inputText); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if(writer!=null){ try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } }