找不到文件将对象保存到手机文件目录

时间:2014-09-21 15:26:44

标签: java android file-io

我正在尝试编写一个文件对象,稍后从另一个活动中检索它。 打开输入流以检索对象时,我得到IO异常:

  

java.io.FileNotFoundException:   /data/data/com.mooney.diveapp/files/savedDiveLocations:打开失败:   ENOENT(没有这样的文件或目录)

字符串和文件初始化:

String fileName="savedDiveLocations";
File theFileName; 


theFileName= new File(objectConetxActivity.getFilesDir(), fileName);    

此处的代码返回先前保存的文件中的对象:

String fileAddress = objectConetxActivity.getFilesDir()+ fileName;
        ObjectInputStream ois = null;
        FileInputStream streamIn=null;
        Object locationObject = null;

        try{

            // except thrown here
            streamIn = new FileInputStream(fileAddress); // address of file
            ois = new ObjectInputStream(streamIn);
            locationObject = ois.readObject();
        }catch (Exception e){

将对象写入文件:

ObjectOutputStream oos = null;
    FileOutputStream fout = null;


    // save to internal durectpry as opposed to exteranl SD card
    try{

        String fileAddress = objectConetxActivity.getFilesDir()+ fileName;
        fout = new FileOutputStream(fileAddress); // filepath
        oos = new ObjectOutputStream(fout);
        oos.writeObject(mapLocationsObject);

    }catch(Exception ex){...

任何意见都赞赏。

1 个答案:

答案 0 :(得分:1)

单独执行theFileName= new File(objectConetxActivity.getFilesDir(), fileName);不会创建您的文件。

您必须致电theFileName.createNewFile();。并确保该方法返回true。这意味着文件是有效创建的。