簡體   English   中英

FileOutputStream創建一個文件,但是FileInputStream

[英]FileOutputStream creates a file, but FileInputStream

我正在使用FileOutputStream在不是MainActivity的活動中創建文件。 創建文件后,銷毀活動時,將寫入所需的數據,但是當我從MainActivity重新啟動活動時,找不到文件。 我可以在代碼中進行哪些更改,以免出現fileNotFoundException 相關代碼在這里:

try {
 fis = new FileInputStream("words");
 ois = new ObjectInputStream(fis);
} catch (FileNotFoundException e1) {
 fnfexception = e1;

} catch (IOException ioe) {
 ioe.printStackTrace();
}
EOFException eof = null;

int counter = 0;
if (fnfexception == null) {
 while (eof == null) {
  try {
   if (words == null) words = new Dict[1];
   else words = Arrays.copyOf(words, counter + 1);
   words[counter] = (Dict) ois.readObject();
   counter++;
  } catch (EOFException end) {
   eof = end;
  } catch (IOException ioe) {
   ioe.printStackTrace();
  } catch (ClassNotFoundException e1) {
   e1.printStackTrace();
  }
 }
}
wordStartCount = counter;
wordCount = counter;
fnfexception = null;

try {
 fos = openFileOutput("words", Context.MODE_PRIVATE);
 oos = new ObjectOutputStream(fos);

} catch (FileNotFoundException e1) {
 fnfexception = e1;

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

您使用錯誤的方式讀取內部文件,請使用以下代碼

try {
    FileInputStream fis = context.openFileInput("file_name");
    int content;
    StringBuilder str = new StringBuilder();
    while ((content = fis.read()) != -1)
        str.append((char) content);
    fis.close();
    String savedText = str.toString();
} catch (IOException e) {
    e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM