我正在尝试将一个对象(pilotRecord)写入文件并再次读回。我知道我不需要指定路径,因为它是我的应用程序的内部路径,因此我希望在卸载应用程序时删除所有文件。
这是我的代码:
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 = new FileInputStream(“test1”); 我不确定如何找出它正在使用的路径,或者可能有一个更明显的问题,我只是没有看到。 对不起,如果这有点基础,但我仍然想找到我的脚。 Log.d语句只输出类名和Id。
TIA,
答案 0 :(得分:2)
您是否尝试过openfileinput(“test1”)而不是新的FileInputStream(“test1”)?
答案 1 :(得分:1)
要找出实际使用的路径,请尝试:
File f = new File("test1");
Log.d(this.getClass().getName(), f.getAbsolutePath());
如果文件确实是创建的,请查看此位置 - 如果没有,您将无法阅读。
编辑:删除了冲洗的猜测,这是一些废话