开发者

FileNotFoundException when trying to read a file I've written

I am trying to write an object (pilotRecord) to a file and read it back again. I understood that I didn't need to specify a path as it is internal to my app, so I want all files deleted if the app is uninstalled.

Here's my code:

    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();

My problem is that I get a FileNotFoundException on the following line in the above code: fileinputstream = new FileInputStream("test1"); I'm 开发者_运维技巧not really sure how to find out what path it is using, or maybe there is a more obvious problem I'm just not seeing. Sorry if this is a bit basic, but I'm still trying to find my feet. The Log.d statements just output the class name and an Id.

TIA,

  • Frink


Have you tried openfileinput("test1) instead of new FileInputStream("test1")?


To find out which path is actually used try:

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

Look at this location if the file is really created - if not, you won't be able to read.

EDIT: removed the guess with flush which was quite some nonsense

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜