Java 关于扫描器、filewriter和getClass()的混淆。getResource()

Java 关于扫描器、filewriter和getClass()的混淆。getResource(),java,Java,如果这是一个基本问题,请道歉 我正在尝试从文本文件(数组列表)中读取和读取数据。我试图让它与相对位置一起工作,但有两个例外: Scanner in = new Scanner(getClass().getResource("/saved/test.txt")); //reading 构造函数扫描程序(URL)未定义 同样,当我保存数据时: FileWriter fw= new FileWriter(getClass().getResource("/saved/test.txt"));//sav

如果这是一个基本问题,请道歉

我正在尝试从文本文件(数组列表)中读取和读取数据。我试图让它与相对位置一起工作,但有两个例外:

Scanner in = new Scanner(getClass().getResource("/saved/test.txt")); //reading
构造函数扫描程序(URL)未定义

同样,当我保存数据时:

FileWriter fw= new FileWriter(getClass().getResource("/saved/test.txt"));//saving
            for (String s : names) {
                fw.write(s + "\n");
            }
            fw.close();
构造函数FileWriter(URL)未定义

如何使其工作?

getClass()。getResource()从类路径读取资源。不是当前目录中的文件

要获取相对于当前目录的文件,只需使用

new File("saved/test.txt");
getClass().getResource()
从类路径读取资源。不是当前目录中的文件

要获取相对于当前目录的文件,只需使用

new File("saved/test.txt");

如果您的目标是读写列表到文本文件,请考虑使用commons io中的FileUtils。如果您的目标是读写列表到文本文件,请考虑使用commons io中的FileUtils。但我正在使用eclipse。根据你的建议,我必须在src文件夹之外创建一个文件夹。我希望使用一个名为“saved”的文件夹,它位于我的src文件夹的根目录下。我知道“src/saved/test.txt”可以工作,但我想要一个更健壮的相对文件路径…src用于源文件。程序读取和写入的文件不是源文件。这是数据。顺便说一句,您使用eclipse的事实与此无关。当您的程序在最终用户的机器上执行时,任何地方都不会有任何src目录。明白了。所以保存到“src”文件夹是不可取的。那么我怎么才能“预创建”这个文件呢?因为如果该文件以前不存在,我将在尝试读取时收到一个运行时异常。或者,管理这个文件(创建、读取和写入)的最健壮的方法是什么?但我正在使用eclipse。根据你的建议,我必须在src文件夹之外创建一个文件夹。我希望使用一个名为“saved”的文件夹,它位于我的src文件夹的根目录下。我知道“src/saved/test.txt”可以工作,但我想要一个更健壮的相对文件路径…src用于源文件。程序读取和写入的文件不是源文件。这是数据。顺便说一句,您使用eclipse的事实与此无关。当您的程序在最终用户的机器上执行时,任何地方都不会有任何src目录。明白了。所以保存到“src”文件夹是不可取的。那么我怎么才能“预创建”这个文件呢?因为如果该文件以前不存在,我将在尝试读取时收到一个运行时异常。或者,管理此文件(创建、读取和写入)的最可靠方法是什么?