首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileOutputStream创建一个文件,但是FileInputStream

FileOutputStream创建一个文件,但是FileInputStream
EN

Stack Overflow用户
提问于 2015-12-31 02:54:15
回答 1查看 114关注 0票数 0

我使用一个FileOutputStream在一个不是我的MainActivity的活动中创建一个文件。文件被创建,当我销毁活动时,我想要的数据被写入,但是当我从我的MainActivity重新启动活动时,文件就找不到了。我可以在代码中更改什么,这样就不会得到fileNotFoundException了?有关守则如下:

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-31 03:07:46

您使用了错误的方法从内部文件中读取,请使用以下代码

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34540371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档