2018/10/18

[Android] Read & Write Text File

在Android app 讀取&寫入文字檔的方法。

在AndroidManifest.xml要打開app寫入及讀取的權限:
  1. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

讀取
  1. private String ReadStringFile(String dir, String filename){
  2. StringBuilder text = new StringBuilder();
  3. try {
  4. File file = new File(Environment.getExternalStorageDirectory() + dir, filename);
  5. BufferedReader br = new BufferedReader(new FileReader(file));
  6. String line;
  7. while ((line = br.readLine()) != null) {
  8. text.append(line);
  9. }
  10. br.close() ;
  11. }catch (IOException e) {
  12. e.printStackTrace();
  13. Toast.makeText(this, "can't find" + dir + filename, Toast.LENGTH_LONG).show();
  14. }
  15. Log.d(TAG,"read file-" + dir + filename + ":" + text);
  16. return text.toString();
  17. }

寫入
  1. private void WriteStringFile(String data, String dir, String filename) {
  2. File file = new File(Environment.getExternalStorageDirectory() + dir, filename);
  3. FileOutputStream stream = null;
  4. try {
  5. stream = new FileOutputStream(file);
  6. stream.write(data.getBytes());
  7. } catch (FileNotFoundException e) {
  8. e.printStackTrace();
  9. } catch (IOException e) {
  10. e.printStackTrace();
  11. }
  12. }

在手機中建立一個myDoc資料夾,裡面放一個file.txt文字檔
程式碼讀取檔案的路徑寫法如下:
  1. private String str = "";
  2. private static String text_filepath = "/myDoc/";
  3. private static String text_filename = "file.txt";
  4.  
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. str = ReadStringFile(text_filepath, text_filename); // read txt file
  10. WriteStringFile("Hello", text_filepath, text_filename); // write "Hello" into txt file
  11. }

End

沒有留言:

張貼留言