2010-08-10 20 views
1

我想写一个对象(pilotRecord)到一个文件并再次读取它。我知道我不需要指定一个路径,因为它是我的应用程序的内部路径,所以如果应用程序被卸载,我希望所有文件都被删除。FileNotFoundException当试图读取我写的文件

这里是我的代码:

fileoutputstream = openFileOutput("test1", Context.MODE_WORLD_WRITEABLE); 
    Log.d(this.getClass().getName(), "loadPilotRecord: "+fileoutputstream.toString()); 
    objectoutputstream = new ObjectOutputStream(fileoutputstream); 
    Log.d(this.getClass().getName(), "loadPilotRecord: "+objectoutputstream.toString()); 
    objectoutputstream.writeObject(pilotRecord); 
    objectoutputstream.close(); 
    fileoutputstream.close(); 

    fileinputstream = new FileInputStream("test1"); 
    Log.d(this.getClass().getName(), "loadPilotRecord: "+fileinputstream.toString()); 
    objectinputstream = new ObjectInputStream(fileinputstream); 
    Log.d(this.getClass().getName(), "loadPilotRecord: "+objectinputstream.toString()); 
    pilotRecord = (PilotRecord)objectinputstream.readObject(); 
    objectinputstream.close(); 
    fileinputstream.close(); 

我的问题是,我得到了上面的代码上以下行FileNotFoundException异常: 的FileInputStream =新的FileInputStream(“测试1”); 我真的不知道如何找出它使用的路径,或者有一个更明显的问题,我只是没有看到。 对不起,如果这是一个基本的,但我仍然试图找到我的脚。 Log.d语句只输出类名和Id。

TIA,

  • 弗林克

回答

2

您是否尝试过openfileinput(“测试1),而不是新的FileInputStream(”测试1" )

+0

干杯。这工作很好吃,谢谢。不知道为什么 new FileInputStream(“test1”) 无法正常工作,因为它是从示例中复制的 – FrinkTheBrave 2010-08-10 16:29:47

+0

文档易出错:P 我很高兴它有帮助! :) – plagelao 2010-08-11 09:13:18

1

要找出哪些路径实际上是用来尝试:

File f = new File("test1"); 
Log.d(this.getClass().getName(), f.getAbsolutePath()); 

看这个位置,如果真的创建的文件 - 如果不是,你将无法阅读。

编辑:删除平齐猜测这是相当长的一段废话

+0

-1 - 你*不*需要什么?在关闭它之前刷新一个流,关闭会执行一次刷新,无论如何,这不会导致FileNotFoundException,因为该文件将由FileOutputStream构造函数调用创建。 – 2010-08-10 14:51:27

+0

返回/ test1,所以我认为它是相对于该应用程序,这是有道理的。不要以为我可以从模拟器内访问该文件区域,这是一个耻辱 – FrinkTheBrave 2010-08-10 16:33:13

相关问题