2014-01-14 220 views
-2

我知道這是一個廣泛討論的問題,但我真的與Android開發人員手冊上提供的示例混淆。 因此,我在res/raw文件夾中有一個「source.txt」。例如,我想在其中寫入2行(例如Hello \ nWorld),然後從另一個活動中讀取它們。任何人都可以爲此寫下源代碼。寫入和讀取txt文件android

回答

2

你應該更換你的.txt文件到您的extornal或內部storage.And你必須給寫文字許可的AndroidManifest.xml

閱讀文件,你可以做到這一點

public String readFile(String filePath) { 

     String jString = null; 
     StringBuilder builder = new StringBuilder(); 

     File yourFile = new File("/sdcard/" + filepath); 
     if (yourFile.exists()) { 
      Log.i("file", "file founded"); 

      BufferedReader bufferedReader = null; 
      try { 
       bufferedReader = new BufferedReader(new FileReader(yourFile)); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      String row = ""; 

      try { 
       while ((row = bufferedReader.readLine()) != null) { 

        builder.append(row + "\n"); 
       } 

       bufferedReader.close(); 


      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      jString = builder.toString(); 
     } 

     else { 

      Log.i("FAIL", "FILE NOT FOUND"); 
     } 

     return jString; 
    } 

寫作文件你可以用這個

public void writetoFile(String filename,String text) { 

     File file = new File("/sdcard/" + filename); 
     if (!file.exists()) 
      try { 
       file.createNewFile(); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

     FileWriter fileWriter; 
     try { 
//you can change second parametre true or false this is about append or clean and write 
      fileWriter = new FileWriter(file, false); 

      BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 
      bufferedWriter.append(jsonText); 

      bufferedWriter.close(); 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
0

無論您的APK文件是只讀,因此您無法寫入存儲在res/raw源文件夾中的文件,因爲它仍在您的APK中。如果您想處理隨應用程序提供的文件,則需要首先從APK複製內部存儲或SD卡,以便允許您更改內容。

0

您的apk的每個文件都是只讀,因此您需要在您的內部存儲或SD卡中創建文件。如果您只是想將少量數據發送到第二個活動,您可以連同意向發送數據或使用sharedPreference

如果你真的想讀/寫數據到/從SD卡,那麼你需要使用FileInputStream和OutputStreamWriter讀/寫數據到文件。查看本教程以瞭解它是如何完成的。 http://www.java-samples.com/showtutorial.php?tutorialid=1523