java - 当您不知道文件所在位置时,如何读取文件?

标签 java file java.util.scanner

基本上,我正在尝试设置一个从文件中读取的扫描仪。我知道文件名是什么,但不知道它位于哪里。出于测试目的,我可能知道,但如果我的老师测试它,我将不知道该文件在他们设备上的位置。

奇怪的是,我什至无法在知道目录的情况下让它工作。 根据我的搜索,人们说当你只使用“testdata.txt”搜索文件时,它应该搜索你的项目所在的当前目录。我已经尝试过将我的测试文件放入其中的文件夹中我的项目已找到,但我仍然收到 FileNotFoundException。

// Make scanner and read jobs into array
String fileName = "testdata.txt";
Scanner sc = new Scanner(new File(fileName));

最佳答案

我建议使用FileInputStreamBufferedReader。根据我的经验,Scanner 类有点奇怪。如果您只从文件中读取,您可以尝试这样的操作:

File file = new File("path.txt");

List<String> jobs = new ArrayList<String>();

try (BufferedReader reader = new BufferedReader(new FileReader(file)) {
    String line = "";

    while ((line = reader.readLine()) != null) {
        jobs.add(line);
    }
} catch (IOException e) {
    // handle errors
}

String[] jobArr = new String[jobs.size()];
jobs.toArray(jobArr);

这样您还可以逐行阅读并单独处理每一行。

关于java - 当您不知道文件所在位置时,如何读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56518331/

相关文章:

扫描导入的文件时出现 Java 异常

java - 使用 HQL 从它们之间具有一对多关系的连接表中进行选择

java - 如果 jar 位于项目本地,则应用程序可以运行;如果构建路径引用它,则应用程序不能运行(为 "flexjson 3.2 strange bug")

java - Spring Roo应用文件上传路径

java - Android-Studio : How to attach a map to a NavigationDrawer Fragment

c - C 中的 xls 文件而不覆盖

file - 从ini文件的某些部分读取某些 key (sed/awk?)

C++:从文本文件中读取单独的行,按字母顺序对单词进行排序

java - 如何使用Scanner检查用户输入是否为整数?

java - (Java) 扫描仪未从文件中读取 nextDouble()