2012-01-13 2 views
4

у меня андроид активность:получает файл не найден исключение

try { 
      File root=Environment.getExternalStorageDirectory(); 
      Log.i("root",root.toString()); 
          File dir=new File(root.getAbsolutePath() + "/downloads"); 
      dir.mkdirs(); 
      file=new File(dir,"mytext.txt"); 
      FileOutputStream out=new FileOutputStream(file,true); 
      PrintWriter pw=new PrintWriter(out); 
      pw.println("Hello! Welcome"); 
      pw.println("You are Here...!!!"); 
      pw.flush(); 
      pw.close(); 
      try { 
       out.close(); 
      } catch (IOException e) { 
      // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

также добавил:

<uses-permission android:name="androd.permission.WRITE_EXTERNAL_STORAGE"/> 

но он бросает мне FileNotfound исключение: 01-13 09: 06: 44.442: WARN/System.err (419): java.io.FileNotFoundException: /mnt/sdcard/downloads/mytext.txt (Нет такого файла или каталога)

и если я добавить

if(file.exists()){ 
    System.out.println("file exists"); 
    } 
    else{ 
    System.out.println("No such Fileeeeeeeeee"); 
    } 

он переходит в «еще» часть.

Благодаря
Sneha

+0

Вы должны проверить ли носитель доступен или не использует метод getExternalStorageState(). – adatapost

+0

Доступен и доступен как для чтения, так и для записи. – Smitha

+0

вы можете объяснить, что вы делаете с "dir.mkdirs()"? – JoxTraex

ответ

8

Попробуйте ,, это работает для меня

// create a File object for the parent directory 
File wallpaperDirectory = new File("/sdcard/Wallpaper/"); 
// have the object build the directory structure, if needed. 
wallpaperDirectory.mkdirs(); 
// create a File object for the output file 
File outputFile = new File(wallpaperDirectory, filename); 
//now attach OutputStream to the file object, instead of a String representation 

FileOutputStream fos = new FileOutputStream(outputFile); 

GO through this for more details

0

Не уверен, но, пожалуйста, проверьте, что существует внешнее хранение в вашем эмуляторе или по телефону в противном случае он будет через исключение.

7

В Android 6 (Зефир) я должен был проверить явно имеет ли мое приложение разрешения "WRITE_EXTERNAL_STORAGE"

+0

Как проверить, предоставлено ли разрешение: http://stackoverflow.com/questions/33162152/storage-permission-error-in-marshmallow – Paglian