Android文件存储方式之openFileOutput与获取数据openFileInput
生活随笔
收集整理的這篇文章主要介紹了
Android文件存储方式之openFileOutput与获取数据openFileInput
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般存儲數據無非分為SP存儲和數據庫還有文件存儲,這里我們說下文件存儲openFileOutput和取出數據openFileInput
我們在一不小心退出APP如果再無退出之前不將數據保存的話數據是會丟失的,那么如何保存呢?接下來說下openFileOutput這個方法,它是默認存儲在data/data/app包名/files/目錄下面的,當然手機不root是看不到數據的,請自行使用模擬器查看。
有保存那就肯定有取出?對的,我也找到了對應的取出數據的方法,openFileInput,直接上代碼。
mainactivity.java
package cn.xiayiye.savefile;import android.app.Activity; 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 Activity {private String trim;private EditText save_data;private BufferedReader bufferedReader;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);save_data = (EditText) findViewById(R.id.save_data);try {FileInputStream save = openFileInput("save");bufferedReader = new BufferedReader(new InputStreamReader(save));StringBuffer sb = new StringBuffer();String line = "";while ((line = bufferedReader.readLine()) != null) {sb.append(line);}save_data.setText(sb.toString());} catch (FileNotFoundException e) {e.printStackTrace();Toast.makeText(this, "未找到保存的文件", Toast.LENGTH_SHORT).show();} catch (IOException e) {e.printStackTrace();} finally {if (bufferedReader != null) {try {bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}}}@Overrideprotected void onDestroy() {super.onDestroy();trim = save_data.getText().toString().trim();saveFile(trim);}private void saveFile(String trim) {if (TextUtils.isEmpty(trim)) {Toast.makeText(this, "填寫數據在保存!", Toast.LENGTH_SHORT).show();} else {try {//save代表保存的文件名稱FileOutputStream save = openFileOutput("save", MODE_PRIVATE);//默認保存到data/data/包名/files/目錄下BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(save));try {bufferedWriter.write(trim);} catch (IOException e) {e.printStackTrace();} finally {if (bufferedWriter != null) {try {bufferedWriter.close();} catch (IOException e) {e.printStackTrace();}}}} catch (FileNotFoundException e) {e.printStackTrace();}}}}接下來我們看下xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"tools:context="cn.xiayiye.savefile.MainActivity"><EditTextandroid:id="@+id/save_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:hint="輸入文本保存"/></LinearLayout>就這么點代碼非常簡單。
如果需要源碼請下載
源碼下載
總結
以上是生活随笔為你收集整理的Android文件存储方式之openFileOutput与获取数据openFileInput的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 待机时间长的智能手机
- 下一篇: 拍风景用多大光圈