Android Studio 无法读取文件,文件不存在

Android Studio cannot read from file, does not exist

我正在尝试在小型 Java 应用程序中读取 Android Studio 中的文件。所以我正在尝试这个:

    File test = new File("C:\testing\testFile.dat");
    if (test.exists()) {
        System.out.println("test exists");
    }
    else {
        System.out.println("test doesn't exist");
    }

文件肯定存在,但是一直提示文件不存在。我能够通过使用 AssetManager 并通过流读取它来解决另一个文件的问题,但是我现在调用的方法需要 File 的绝对路径,但它是直截了当的拒绝找到文件。

我是在做蠢事,还是误解了什么?

更新 好的,感谢您的输入,我现在已经解决了问题。首先,我必须将我想要的文件上传到虚拟设备的存储中,然后我才能获得它的路径。

File test = new File(this.getFilesDir().getAbsolutePath(), "testFile.dat");

but the method I'm calling now requires a File's absolute path

资产是您开发机器上的文件。它们不是设备上的文件。

理想情况下,您切换到一些支持 InputStream 或类似选项的库,而不需要文件系统路径。如果这不是一个选项,您始终可以从 AssetManager 获取 InputStream 并使用它来复制您控制的某个文件中的数据(例如,在 getCacheDir() 中)。然后您可以将该文件的路径传递给此方法。

您可以将此文件放在 android 项目内的 assets/ 文件夹中,然后使用以下代码访问。

val inputSteam =  assets.open("testFile.dat")

或将其放在 res/raw 文件夹中并按如下方式访问它。

val inputStream = resources.openRawResource(R.raw.testFile)

我们无法像这样在开发机器上访问文件,在 android 设备上也不可用,因此它会损坏,所以最好将其移动到项目内部的某个位置并访问它如上