Управление файлами Android

#android #filereader #filewriter

#Android #программа чтения файлов #filewriter

Вопрос:

я использую приведенный ниже код для записи файла на SD-карту и чтения его содержимого:

 try {
        if (root.canWrite())
        {
                File rootdir = Environment.getExternalStorageDirectory();
                File yourFile = new File(rootdir, "tomato50.txt");
                FileWriter filewriter = new FileWriter(file,true);                                                                     
                BufferedWriter out = new BufferedWriter(filewriter);
            for (int k=0; k<assignArr.size(); k  )
            {
               out.write(assignArr.get(k)   "n");
               Toast.makeText(MainActivity.this, "out: "   assignArr.get(k), Toast.LENGTH_LONG).show();
            }
            out.close();
          }
          } catch (IOException e) {
          Log.e("TAG", "Could not write file "   e.getMessage());


try { 
       File rootdir = Environment.getExternalStorageDirectory();
       File yourFile = new File(rootdir, "tomato50.txt");
       FileReader filereader = new FileReader(yourFile);
       BufferedReader br = new BufferedReader(filereader);
       String line; 
       while((line = br.readLine()) != null) 
       {
           assignArrBe.add(line); 
           Toast.makeText(MainActivity.this, "Read from file: "   line, Toast.LENGTH_LONG).show();
        } 
      br.close();
       }
      catch (IOException e) 
     { 
        e.printStackTrace(); 
     }
  

Вопрос в том, как я могу записывать в память телефона и читать из нее?

Ответ №1:

Вам потребуется рутировать свой телефон, чтобы получить доступ на запись к любой папке телефона.

Если то, что вы хотите, это записать во внутреннее хранилище для конкретного приложения, то вы можете следовать этому руководству: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

Комментарии:

1. Частично верно: этот код предназначен для ExternalStorage. Вы можете использовать внешнее хранилище в каждом телефоне.

2. @Redax тогда, пожалуйста, объясните лучше, что вы имеете в виду под «как я могу записать в память телефона», потому что я понял, что вы просили записать в файловую систему телефона.

3. Я имею в виду некоторые, я хочу добавить возможность сохранять некоторые данные, когда в телефоне нет SD-карты.

4. @erdomester тогда у вас есть два варианта, описанных выше. ИМХО, вам нужен второй (внутреннее хранилище данных). Вы перешли по этой ссылке?

Ответ №2:

Прежде всего, вы должны поместить в свой файл манифеста эту строку:

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

Если этого недостаточно, можете ли вы объяснить проблему более подробно?