2012-06-29 192 views
1

.txt文件需要保存在SD卡中。將文件保存到SD卡

Save("n" + String.valueOf(key) + ".txt"); 

private void Save(String FileName){ 
     File fileName = null; 
     String sdState = android.os.Environment.getExternalStorageState(); 

     if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) { 
      File sdDir = android.os.Environment.getExternalStorageDirectory(); 
      fileName = new File(sdDir, "FlyNote/"+FileName); 
      } else { 
       fileName = context.getCacheDir(); 
      } 
     if (!fileName.exists()) 
      fileName.mkdirs(); 
     try { 
      FileWriter f = new FileWriter(fileName); 
      f.write(editText2.getText().toString()); 
      f.flush(); 
      f.close(); 
     } catch (Exception e) { 

     } 
    } 

但是在SD卡文件中保存爲文件夾。 文件夾「n5.txt」等......

+0

因爲您使用fileName.mkdirs();如果它不存在,則創建文件名的目錄。 – rajpara

+0

fileName.mkdirs();你正在創建一個目錄..檢查這個http://stackoverflow.com/questions/11232148/how-to-read-data-from-a-sqllite-database-table/11232938#11232938 –

回答

2

使用

File dir= new File(sdDir.getAbsolutePath(), "FlyNote"); 
dir.mkdirs(); //CREATE DIR HERE 
File file = new File(dir, FileName);//CREATE FILE HERE 

,而不是

fileName = new File(sdDir, "FlyNote/"+FileName); 
0

當你測試存在,你正在尋找,如果Flynote/Filename存在與否,如果它不存在你創建一個使用mkdirs

fileName.mkdirs()以該文件的名稱作爲目錄。因此你會發現錯誤。你mkdirs應該只用於Flynote而不是Flynote/+FileName

0

試試這個,

如果你的目標是一個文件,爲什麼[Rü使用「MKDIR」,使一個目錄而不是一個文件。

此代碼是創建一個文件:

File f = new File("/sdcard/n5.txt"); 
FileWriter fw = new FileWriter(f); 
BufferedWriter bw = new BufferdWriter(fw); 
bw.write("Hello"); 

要檢查文件夾中存在...

File f = new File("/sdcard/myfolder"); 
if (f.exists()){ 

    // do what u want 

    } 
else{ 
     // doesnt exists 
     } 
0

這裏的大多數給出的方法是好的...您還可以使用以下代碼:

public static void addToFile(String file,String message){ 

    try { 
     FileOutputStream fos = new FileOutputStream(file,true); 
     fos.write(("\n"+message).getBytes()); 
     fos.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

這裏「File」是一個字符串,其中包含您的文件的路徑,例如:File =「/sdcard/parentPath/FileName.txt」和「message」顯然是您要輸入到文件中的消息。 (考慮該文件包含txt內容)