2013-12-04 2 views
4

Я хочу создать файл на sdcard. Здесь я могу создать файл и прочитать/записать его в приложение, но здесь я хочу, чтобы файл был сохранен в определенной папке sdcard. Как это сделать, используя FileOutputStream?Записать файл на sdcard в android

// create file 
    public void createfile(String name) 
    { 
     try 
     { 
      new FileOutputStream(filename, true).close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

    // write to file 

    public void appendToFile(String dataAppend, String nameOfFile) throws IOException 
    { 
     fosAppend = openFileOutput(nameOfFile, Context.MODE_APPEND); 
     fosAppend.write(dataAppend.getBytes()); 
     fosAppend.write(System.getProperty("line.separator").getBytes()); 
     fosAppend.flush(); 
     fosAppend.close(); 
    } 
+0

проверить документы. http://developer.android.com/guide/topics/data/data-storage.html. вы пытаетесь сохранить во внутреннем хранилище? – Raghunandan

+0

да, я хочу сохранить файл во внутреннем хранилище ... –

+0

, тогда ваше название вопроса нужно изменить. Записать файл на внутреннее хранилище в android. – Raghunandan

ответ

5

Попробуйте, как это,

try { 
    File newFolder = new File(Environment.getExternalStorageDirectory(), "TestFolder"); 
    if (!newFolder.exists()) { 
     newFolder.mkdir(); 
    } 
    try { 
     File file = new File(newFolder, "MyTest" + ".txt"); 
     file.createNewFile(); 
    } catch (Exception ex) { 
     System.out.println("ex: " + ex); 
    } 
} catch (Exception e) { 
    System.out.println("e: " + e); 
} 
7

Вот пример из моего кода:

try { 
    String filename = "abc.txt"; 
    File myFile = new File(Environment 
      .getExternalStorageDirectory(), filename); 
    if (!myFile.exists()) 
     myFile.createNewFile(); 
    FileOutputStream fos; 
    byte[] data = string.getBytes(); 
    try { 
     fos = new FileOutputStream(myFile); 
     fos.write(data); 
     fos.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 

И не забывайте:

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

Это довольно легко создать папку и записать файл на SD-карте в android

Фрагмент кода

String ext_storage_state = Environment.getExternalStorageState(); 
      File mediaStorage = new File(Environment.getExternalStorageDirectory() 
        + "/Folder name"); 
      if (ext_storage_state.equalsIgnoreCase(Environment.MEDIA_MOUNTED)) { 
       if (!mediaStorage.exists()) { 
        mediaStorage.mkdirs(); 
       } 
       //write file writing code.. 

try { 

       FileOutputStream fos=new FileOutputStream(file name); 
       try { 
        fos.write(filename.toByteArray()); 
        fos.close(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       }   
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      } 
      else 
      { 
       //Toast message sd card not found.. 
      } 
+0

Этот пример хорошо ! – Hitman

0

Примечание: 'getExternalStorageDirectory()' на самом деле дает вам путь к/хранения/эмулировать/0, а не фактическое SDCard

«Строка путь = сист. envr ("SECONDARY_STORAGE");» дает вам путь к SD-карте

Смежные вопросы