簡體   English   中英

FileNotFoundException:/ storage / emulated / 0 / Android

[英]FileNotFoundException: /storage/emulated/0/Android

我嘗試此文件編寫器/讀取器代碼段進行測試:

File file = new File(Environment.getExternalStorageDirectory(), "LM/lm_lisdat_01.txt");
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(("test").getBytes());
outputStream.close();

File file = new File(getExternalFilesDir(null), "LM/lm_lisdat_01.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

在4.行中,我在下面收到此錯誤消息,但是在LM目錄中創建了“ lm_lisdat_01.txt”文件:

java.io.FileNotFoundException:/storage/emulated/0/Android/data/hu.abisoft.lm/files/LM/lm_lisdat_01.txt:打開失敗:ENOENT(沒有此類文件或目錄)

可以幫助任何人回答這個(我認為很簡單)的問題嗎? 我是Android的newby。 謝謝!

您正在一個目錄中創建文件,然后嘗試將其打開以在另一目錄中輸入。

Environment.getExternalStorageDirectory()是/ storage / emulated / 0

getExternalFilesDir(null)是/storage/emulated/0/Android/data/hu.abisoft.lm/files

使用相同的目錄進行文件創建和輸入。

請查看更改。 你的路錯了。

並檢查文件是否存在。

    File file = new File(Environment.getExternalStorageDirectory(), "LM/lm_lisdat_01.txt");
    FileOutputStream outputStream = new FileOutputStream(file);
    outputStream.write(("test").getBytes());
    outputStream.close();

    File file = new File(Environment.getExternalStorageDirectory(), "LM/lm_lisdat_01.txt");//changes here
if(file.exists())
   { 

  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
   }

使用sdk,您無法寫入內部存儲的根目錄。 這會導致您的錯誤。 編輯:

根據您的代碼,將內部存儲與sdk結合使用:

final File dir = new File(context.getFilesDir() + "/nfs/guille/groce/users/nicholsk/workspace3/SQLTest");
dir.mkdirs(); //create folders where write files
final File file = new File(dir, "BlockForTest.txt");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM