2015-05-18 58 views
0

我是Android新手,我正在使用Android Studio 1.2。Android写入/读取抛出FileNotFoundException

所以我用这个代码写在一个类文件:

try { 
      //registry is input by user when logging in.. 
       FileOutputStream fOut = openFileOutput(registry+ "d", MODE_APPEND); 
       Toast.makeText(getApplicationContext(), "writing in " + registry+"d the value" + disciplina2, Toast.LENGTH_SHORT).show(); 
       //toast tells me it's writing properly on the correctly named file 
       fOut.write(disciplina2.getBytes()); 
      } catch (FileNotFoundException e) { 
       Toast.makeText(getApplicationContext(), "**not found**", Toast.LENGTH_SHORT).show(); 
      } catch (IOException e) { 
       Toast.makeText(getApplicationContext(), "**io exception**", Toast.LENGTH_SHORT).show(); 
      } 

然后我应该访问,阅读并填写列表我有其他类:

try { 
     InputStream inputstream = this.getAssets().open(registry + "d"); 
     BufferedReader buffer = new BufferedReader(new InputStreamReader(inputstream)); 

     while(buffer.readLine()!=null) { 
      line = buffer.readLine(); 
      listaDisciplina.add(line); 
      Toast.makeText(getApplicationContext(), "discipline " + line, Toast.LENGTH_SHORT).show(); 
     } 
    } 
    catch (FileNotFoundException e) { 
     Toast.makeText(getApplicationContext(), "**not found** " + registry+"d", Toast.LENGTH_SHORT).show(); 
    } catch (IOException e) { 
     Toast.makeText(getApplicationContext(), "**io excep D**", Toast.LENGTH_SHORT).show(); 
    } 

即使文件名称匹配并且写入在读取之前肯定发生,它也会直接进入FileNotFoundException。

有什么想法?

回答

0

您确定您正在引用正确的文件来读取写操作添加的数据吗?

this.getAssets().open 

getAssets()将会从您的应用程序的“资产”文件夹中的文件

,我认为你应该使用输入相应的方法,这将是

this.openFileInput() 
相关问题