0

我对java很陌生,所以这可能很简单,但我找不到修复它的方法。

我正在构建一个应用程序,我需要能够将当前日期写入文件。我遇到问题的部分实际上是获取要写入的文件的位置。

读取文件并将每行上的所有文本放入一个数组列表中,我使用没有问题:

Scanner in = new Scanner(MainActivity.class.getResourceAsStream("notes.dat"));

但是,在尝试声明文件编写器时,我尝试了两种方法:

FileWriter f = new FileWriter(new File("date.dat"));

FileWriter f = new FileWriter(new File(MainActivity.class.getResourceAsStream("date.dat")));

(它适用于扫描仪,但在 FileWriter 上它给了我错误:构造函数 File(InputStream) 未定义):

我还尝试将文件放在不同的位置,例如 src 文件夹和根 android 项目文件夹并正确指向它,但它从未被找到。

无论我试图使用文件写入器查找文件然后写入它,我似乎都无法找到该文件。我创建了一个未链接到应用程序开发项目文件夹的 java 文件,并尝试将 date.dat 放在与 java 文件相同的文件夹中,并且能够毫无问题地使用以下内容:

FileWriter f = new FileWriter(new File("date.dat"));

我的问题是为什么 FileWriter 在用于未链接到 android 项目的普通 java 文件时似乎可以工作,但在我的项目中使用时它停止工作,如何修复?

4

1 回答 1

0

当你使用.getResource()和朋友时,JVM会在它的类路径中查找一个匹配的名字。这意味着这可以是 jar 中的文件。

为了能够读取/写入文件,因此不应使用它。

尝试创建一个您知道其位置的外部目录,并在该目录中工作。

于 2013-05-28T20:57:27.580 回答