测试文件是否存在

2022-08-31 22:14:27

我正在尝试像这样在Android中打开一个文件:

  try
   {
      FileInputStream fIn = context.openFileInput(FILE);
      DataInputStream in = new DataInputStream(fIn);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      if(in!=null)
          in.close();
   }
   catch(Exception e)
   {  }

,但是如果文件不存在,则引发“找不到文件”异常。我想知道在尝试打开文件之前,如何测试该文件是否存在。


答案 1

我认为知道文件是否存在而不实际尝试打开它的最佳方法如下:

File file = getContext().getFileStreamPath(FILE_NAME);
if(file.exists()) ...

希望有所帮助,再见!


答案 2

文档显示 Context.openFileInput 要么返回 inputStream(找到文件),要么抛出 FileNotFoundException(未找到)

http://developer.android.com/reference/android/content/Context.html#openFileInput(java.lang.String)

所以看起来例外是你的“测试”。

您也可以尝试使用标准

java.io.File file = new java.io.File(PATHTOYOURCONTEXT , FILE);
if (file.exists()) {
    FileInputStream fIn = new FileInputStream(file);
}

但不建议这样做。Context.openFileInput() 和 Context.openFileOutput() 确保你保留在设备上的应用程序存储上下文中,并且在卸载应用时删除所有文件。