最終效果圖,點擊save會保存到文件中,點擊show會從文件中讀取出內容並顯示。html
main.xmljava
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