java - 我怎样才能只使用相对文件名而不是绝对文件名?

标签 java file file-io

我正在让我的程序读取一个 .txt 文件,我不想使用绝对文件名,因为它依赖于机器,我只想使用相对文件名。我不知道如何让它做到这一点。这是我正在谈论的程序的一部分:

private List<String> readFile() {

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

    try {
        String fileName = "C:/Users/Phil/Documents/FourLetterWords.txt";
        File fourLetterWords = new File(fileName);
        Scanner in = new Scanner(fourLetterWords);

        while (in.hasNextLine()) {
            String line = in.nextLine();
            if (line!=null && !line.isEmpty()) {
                wordsList.add(line);
            }
        }
    } 
    catch (FileNotFoundException ex) {
        System.out.println("File not found.");
    }
    return wordsList ;
}

如果我要做到这一点:

"C:/FourLetterWords.txt"

然后我的 catch 异常出现并说找不到文件。但我真的只想用...

"FourLetterWords.txt"

最佳答案

改变这个

String fileName = "C:/Users/Phil/Documents/FourLetterWords.txt";

类似于

File f = new File(System.getProperty("user.home"),
    "Documents/FourLetterWords.txt");

这将在 Java 支持的每个平台上获取“user.home”,然后将“Documents/FourLetterWords.txt”附加到该路径。

关于java - 我怎样才能只使用相对文件名而不是绝对文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27573312/

相关文章:

json - 如何使用 Google Apps 脚本将 JSON 文件保存到 Google Drive?

c++ - 逐步读取文本文件

java - Tapestry5 使用带有构造函数参数的注入(inject)服务

java - java servlet 出现 404 错误。看不到 html 文件

java - 如果目录中存在文件名,则替换

java - 减少 Java 的操作时间

java - CSV 文件,二进制格式更快?最快的搜索?

检查文件是否存在于当前目录

java - 将 C++ 位模式转换为 Java

java - 如何在 Talend 中使用 Java 类