2015-02-06 2 views
0

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

В моем приложении я хочу сохранить данные Json в .txt-файлах и сохранить их в определенной папке во внутренней памяти. Или сохранить файлы непосредственно в папке Android/data также будет хорошо.

Для этого я использовал следующие коды, но я не могу найти файлы, хранящиеся так, как я хотел. Может ли кто-нибудь сказать мне, что это проблема с моим кодом и как я могу исправить?

String fname, fcontent; 
Context context; 
ProgressDialog pDialog; 

public SaveIntoFile(String fileName, String jsonStr, Context context, ProgressDialog pDialog) { 
    this.fname = fileName; 
    this.context = context; 
    this.fcontent = jsonStr; 
    this.pDialog = pDialog; 
} 

public void write() { 
    try { 

     File mydir = context.getDir("NepalJapan", Context.MODE_PRIVATE); 
     File file = new File(mydir, fname+".txt"); 

     if (file.exists()) 
      file.delete(); 
     // If file does not exists, then create it 
     if (!file.exists()) { 
      file.createNewFile(); 
     } 

     FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
     BufferedWriter bw = new BufferedWriter(fw); 
     bw.write(fcontent); 
     bw.close(); 

    } catch (IOException e) { 
     e.printStackTrace(); 

    } 
} 

public String read() throws IOException { 
    BufferedReader br = null; 
    String response = null; 

    StringBuffer output = new StringBuffer(); 

    File mydir = context.getDir("NepalJapan", Context.MODE_PRIVATE); 
    File file = new File(mydir, fname+".txt"); 

    if (!file.exists()) { 

     if (pDialog.isShowing()) 
      pDialog.dismiss(); 

     return null; 
    } else { 
     br = new BufferedReader(new FileReader(file)); 
     String line = ""; 
     while ((line = br.readLine()) != null) { 
      output.append(line + "\n"); 
     } 
     response = output.toString(); 

     br.close(); 

     return response; 
    } 

} 
+0

это показывает ошибки? в logcat возможно –

+0

Вы дали разрешение на чтение/запись в файле манифеста? – sUndeep

+0

@RandykaYudhistira Он не обнаруживает ошибки в logcat. Приложение работает хорошо, но не сохраняет файлы. –

ответ

0

Ниже приведен фрагмент кода для размещения txt-файла во внутренней памяти. Чтобы просмотреть файл. вы должны запустить тест приложение в эмуляторе, а затем перейти DDMS -> Проводник File -> app_NepalJapan -> hello.txt

public static String write(Context context, String strfilename) { 

     String internalMemoryPath = ""; 

     try { 

      File InternalMemoryRoot = context.getDir("NepalJapan", Context.MODE_PRIVATE); 
      final File folderPath = new File(InternalMemoryRoot+""); 

      Log.v("filePath","filePath: "+folderPath); 

      if(!folderPath.exists() && !folderPath.isDirectory()){ 
       folderPath.mkdirs(); 
      } 

      String filePath = folderPath +"/"+ strfilename; 
      Log.v("filePath","filePath: "+filePath); 



      File file = new File(filePath); 
      FileOutputStream fileOutput = new FileOutputStream(file); 

      // create a buffer... 
      byte[] buffer = new byte[16384]; 
      int bufferLength = 1; 
      fileOutput.write(buffer, 0, bufferLength); 
      fileOutput.close(); 

      internalMemoryPath = filePath; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return internalMemoryPath; 
    } 

метод вызова в вашей деятельности: YourStaticUtilClass.write(context, "hello.txt");

Если вы до сих пор найти какие-либо трудности, то дайте мне знать.

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