2012-04-25 3 views
0

Я хочу сохранить файл с строкой из edittext в нем, а затем загрузить его.Сохранение и загрузка файлов на эмуляторе

Как-то это не работает. Я думаю, что сохраненный файл не может быть найден или не хранится (согласно журналам).

Как это исправить?

Вот сохранить код:

Log.i("Watcher","Saving..."); 
ProgressDialog dSave = ProgressDialog.show(this, "Saving", "SAving. Please wait...",false);    
String fName = "WatchConf"; 
EditText servPath = (EditText)findViewById(R.id.ServerPath); 
String sServPath = servPath.getText().toString(); 

try { 
    FileOutputStream fos = openFileOutput(fName, Context.MODE_PRIVATE); 
     fos.write(sServPath.getBytes()); 
     fos.flush(); 
     fos.close(); 
     Log.d("Watcher","Saved"); 

     File fCheck = new File(getFilesDir()+fName); 
     if(fCheck.exists()){ 
      Log.i("Watcher","Saved successfully"); 
     } 

Код для погрузки:

Log.i("Watcher","Loading..."); 
     String fName = "WatchConf"; 
     EditText servPath = (EditText)findViewById(R.id.ServerPath); 

     try {   
      InputStreamReader isr = new InputStreamReader(openFileInput(getFilesDir()+"/"+fName)); 
      char[] cRead = new char[100]; 
      isr.read(cRead); 
      String sRead = new String(cRead); 
      servPath.setText(sRead); 
      isr.close(); 
      Log.i("Watcher","Loaded"); 
+0

попробуйте распечатать sServPath в журнале, чтобы убедиться, что вы тянете текст, который вам нужен - у вас может быть неверный вид или что-то в этом роде. –

+0

вид в порядке, выводит правильный текст – ctekk

+0

Хорошо, я забыл «/» между путем и fName для файла fCheck. Тем не менее, файл не загружается с кодом, который я добавил выше (NPE) – ctekk

ответ

1

Вы написали:

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

Я не пишу внешнее хранилище, не так ли? Контекстный режим является приватным, но я попробую его сейчас – ctekk

0

Причина, почему он не работает было то, что я хотел слишком быстро загрузить строку в представление.

Загрузка после setContentView(R.layout.main); решила проблему.

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