Android应用创建文件但无法找到它

时间:2016-06-17 21:18:47

标签: java android

我遇到了阻止我发布应用的问题,所以也许你可以提供帮助。我有这个代码来创建和写入文件:

@Override
public void onClick (View view){
    final String memoryString = memory.getText().toString();
    File file = new File(getApplicationContext().getFilesDir(), filename);

    FileOutputStream fos = new FileOutputStream(file);
    if (location != null) {
        String s = location.toString() + " " + memoryString;
        Log.d(null, s);
        if(fos != null) {
            Log.d(null, "fos not null");
            fos.write(s.getBytes());
        } else { 
            Log.d(null, "Output Stream is null");
        }

        fos.close();
        Log.d(null, "file created!");
    }
    } catch (IOException e) {
        e.printStackTrace();
    }

我的日志说它正在创建文件。但是当我去访问并阅读所述文件时,我在这里得到的错误是它不存在:

try {
    File memoryFile = new File(filename);

    if(memoryFile.exists()){
        revealMarkers(memoryFile);
        Log.d(null, "revealed");
    } else { 
        Log.d(null, "no file found");
    }
} catch (FileNotFoundException ex) {
    Log.d(null, "file not found");
}

如果你有能力,请帮忙,我非常困难

2 个答案:

答案 0 :(得分:0)

也许这个?

try {
        File memoryFile = new File(getApplicationContext().getFilesDir(), filename);

        if(memoryFile.exists()){
                revealMarkers(memoryFile);
                Log.d(null, "revealed");
        }else{Log.d(null, "no file found");}
    } catch (FileNotFoundException ex) {
        Log.d(null, "file not found");
    }

答案 1 :(得分:0)

您是如何使用此声明创建文件的?

File file = new File(getApplicationContext().getFilesDir(), filename);

然后尝试使用此

检索文件
File memoryFile = new File(filename);

为什么不能使用相同的声明。第二个语句如何确定包含该文件的目录?