android 文件 寫入 讀取 簡單 文本 讀寫 context.openfileinput context openfileinput context.openfileoutput openfileoutput 欄目 Android 简体版
原文   原文鏈接

最終效果圖,點擊save會保存到文件中,點擊show會從文件中讀取出內容並顯示。html

main.xmljava

 

[xhtml] view plain copy
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:<href="http://lib.csdn.net/base/15" class='replace_word' title="Android知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>Android</a>="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="請您輸入要保存的內容:"  
  11.     />  
  12.  <EditText  
  13.     android:id="@+id/addText"  
  14.     android:layout_width="fill_parent"   
  15.     android:layout_height="wrap_content"  
  16.     android:hint="請您在此處輸入文件內容!"  
  17.  />     
  18.  <Button   
  19.     android:id="@+id/addButton"  
  20.     android:layout_width="wrap_content"   
  21.     android:layout_height="wrap_content"  
  22.     android:text="save"  
  23.  />  
  24.  <Button  
  25.     android:id="@+id/showButton"  
  26.     android:layout_width="wrap_content"   
  27.     android:layout_height="wrap_content"  
  28.     android:text="show"  
  29.  />  
  30.  <TextView  
  31.     android:id="@+id/showText"    
  32.     android:layout_width="fill_parent"   
  33.     android:layout_height="wrap_content"   
  34.     />  
  35.    
  36. </LinearLayout>  
 

 

 

 

activity代碼android

  1 package dome.file.com.filedome;
  2 
  3 import android.content.Context;
  4 import android.support.v7.app.AppCompatActivity;
  5 import android.os.Bundle;
  6 import android.util.Log;
  7 import android.widget.EditText;
  8 import android.widget.TextView;
  9 
 10 import java.io.BufferedReader;
 11 import java.io.BufferedWriter;
 12 import java.io.ByteArrayOutputStream;
 13 import java.io.FileInputStream;
 14 import java.io.FileNotFoundException;
 15 import java.io.FileOutputStream;
 16 import java.io.IOException;
 17 import java.io.InputStreamReader;
 18 import java.io.OutputStreamWriter;
 19 import java.io.FileInputStream;
 20 import java.io.FileNotFoundException;
 21 import java.io.FileOutputStream;
 22 import java.io.IOException;
 23 
 24 import android.app.Activity;
 25 import android.os.Bundle;
 26 import android.view.View;
 27 import android.view.View.OnClickListener;
 28 import android.widget.Button;
 29 import android.widget.EditText;
 30 import android.widget.TextView;
 31 import android.widget.Toast;
 32 
 33 public class MainActivity extends AppCompatActivity {
 34 
 35     private EditText editText;
 36     private TextView showTextView;
 37     // 要保存的文件名
 38     private String fileName = "chenzheng_java.txt";
 39 
 40     @Override
 41     public void onCreate(Bundle savedInstanceState) {
 42         super.onCreate(savedInstanceState);
 43         setContentView(R.layout.activity_main);
 44         // 獲取頁面中的組件
 45         editText = (EditText) findViewById(R.id.addText);
 46         showTextView = (TextView) findViewById(R.id.showText);
 47         Button addButton = (Button) this.findViewById(R.id.addButton);
 48         Button showButton = (Button) this.findViewById(R.id.showButton);
 49         // 綁定單擊事件
 50         addButton.setOnClickListener(listener);
 51         showButton.setOnClickListener(listener);
 52 
 53     }
 54 
 55     // 聲明監聽器
 56     private View.OnClickListener listener = new OnClickListener() {
 57         public void onClick(View v) {
 58             Button view = (Button) v;
 59             switch (view.getId()) {
 60                 case R.id.addButton:
 61                     save();
 62                     break;
 63                 case R.id.showButton:
 64                     read();
 65                     break;
 66 
 67             }
 68 
 69         }
 70 
 71     };
 72 
 73     /**
 74      * @author chenzheng_Java
 75      * 保存用戶輸入的內容到文件
 76      */
 77     private void save() {
 78         BufferedWriter bufferdWriter = null;
 79         String content = editText.getText().toString();
 80         try {
 81             /* 根據用戶提供的文件名,以及文件的應用模式,打開一個輸出流.文件不存系統會爲你建立一個的,
 82              * 至於爲何這個地方還有FileNotFoundException拋出,我也比較納悶。在Context中是這樣定義的
 83              *   public abstract FileOutputStream openFileOutput(String name, int mode)
 84              *   throws FileNotFoundException;
 85              * openFileOutput(String name, int mode);
 86              * 第一個參數,表明文件名稱,注意這裏的文件名稱不能包括任何的/或者/這種分隔符,只能是文件名
 87              *          該文件會被保存在/data/data/應用名稱/files/chenzheng_java.txt
 88              * 第二個參數,表明文件的操做模式
 89              *          MODE_PRIVATE 私有(只能建立它的應用訪問) 重複寫入時會文件覆蓋
 90              *          MODE_APPEND  私有   重複寫入時會在文件的末尾進行追加,而不是覆蓋掉原來的文件
 91              *          MODE_WORLD_READABLE 公用  可讀
 92              *          MODE_WORLD_WRITEABLE 公用 可讀寫
 93              *  */
 94             FileOutputStream outputStream = openFileOutput(fileName,
 95                     Activity.MODE_PRIVATE);
 96             bufferdWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
 97             bufferdWriter.write(content);
 98             Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_LONG).show();
 99         } catch (Exception e) {
100             e.printStackTrace();
101         } finally {
102 
103             try {
104                 if (bufferdWriter != null) {
105                     bufferdWriter.close();
106                 }
107             } catch (IOException e) {
108                 e.printStackTrace();
109             }
110 
111 
112         }
113 
114     }
115 
116     /**
117      * @author chenzheng_java
118      * 讀取剛纔用戶保存的內容
119      */
120     private void read() {
121 
122         BufferedReader bufferedReader = null;
123         try {
124             FileInputStream inputStream = this.openFileInput(fileName);
125 
126             bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
127             StringBuilder stirngBuidler = new StringBuilder();
128             String line = "";
129             while ((line = bufferedReader.readLine()) != null) {
130                 stirngBuidler.append(line);
131             }
132 
133             showTextView.setText(stirngBuidler.toString());
134 
135         } catch (Exception e) {
136             e.printStackTrace();
137         } finally {
138 
139             try {
140                 if (bufferedReader != null) {
141                     bufferedReader.close();
142                 }
143             } catch (IOException e) {
144                 e.printStackTrace();
145             }
146 
147 
148         }
149 
150     }
151 
152 }

 

 

其餘的都爲默認。app

關於文件保存的路徑能夠經過ADT攜帶的File Explorer工具進行查看。如何調出File Explorer工具呢;咱們能夠經過Windows--showView--others-android下面看到File Explorer。這裏是個人一個截圖。dom

 

對於這個程序,基本上沒什麼難點,就是純粹的java流知識。惟一不一樣的就是context爲咱們提供了兩個方法來獲取輸入輸出流。簡單、方便、快捷啊。ide

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息