Android内部存储

来源:互联网 发布:添加hp打印机 usb端口 编辑:程序博客网 时间:2024/05/29 15:12

Android手机里,除了SD卡外部存储以外,还有一部分内部存储,内部存储不是电脑上的内存,它是断电以后依然可以保存数据的,它主要用来装Android操作系统的文件,它们不root是无法看到的。但是内部存储读取速度较快,相当于电脑的系统盘。

一下程序实现了在一个叫et的EditView里,按保存按钮保存数据,并在下次启动应用程序时还原出来。

public class MainActivity extends AppCompatActivity {    private EditText et;    private Button btnSave;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnSave = (Button) findViewById(R.id.btn_Save);        et = (EditText) findViewById(R.id.editText);        ReadSavedText();        btnSave.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                SaveCurrentText();            }        });    }    private void ReadSavedText() {        try {            //新建输出流            InputStream is = openFileInput("data.txt");            Toast.makeText(this, "找到文件", Toast.LENGTH_SHORT).show();            /*新建一个byte数组,InputStream的available方法返回了一个整型,表示可以被读取到的字节数,该方法            不会被别的请求这个输入流的方法打断*/            byte[] bytes = new byte[is.available()];            //将读取到的byte存入bytes数组            is.read(bytes);            is.close();            //将Bytes文件转换为字符串类型,转换方式为utf-8码            String str = new String(bytes, "utf-8");            et.setText(str);        } catch (IOException e) {            e.printStackTrace();        }}    private void SaveCurrentText() {        try {            /*创建一个新的输出流,第一个参数是要写入的文件的名字,第二个参数是写入模式,MODE_PRIVATE是            覆盖原文件的方式,MODE_APPEND是在原有文件末尾追加数据的方式*/            OutputStream os = openFileOutput("data.txt", Context.MODE_PRIVATE);            //将et中的文本转换为字节码写入文件,以utf-8的编码方式,此编码方式支持中文            os.write(et.getText().toString().getBytes("utf-8"));            //清空输入流            os.flush();            //关闭输入流            os.close();            Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();        } catch (IOException e) {            e.printStackTrace();        }    }}


0 0