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

问题描述 投票:0回答:2

我正在尝试从小型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的绝对路径,但是要点空白是拒绝查找文件。

我是在做一些愚蠢的事情,还是在误解某件事?

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

File test = new File(this.getFilesDir().getAbsolutePath(), "testFile.dat");
java android android-studio java-io
2个回答
1
投票

但是我现在要调用的方法需要文件的绝对路径

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

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


1
投票

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

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

或将其放置在res/raw文件夹中,然后如下所示进行访问。

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

我们无法在这样的开发机器上访问文件,因此无法在android设备上使用,因此它会损坏,因此最好将其移动到项目中的某个位置并按上述方式进行访问。

© www.soinside.com 2019 - 2024. All rights reserved.