【问题标题】:How to read a text file without a specific directory?如何读取没有特定目录的文本文件?
【发布时间】:2022-06-13 18:27:31
【问题描述】:

我正在编写一个需要从文本文件中读取数据的程序。

现在,打开我使用的文本文件

File readFile = new File("src/txtFile.txt")

我希望它不具体,这样当我将它发送给某人并且他们决定将我的 jar 和 txt 文件放在一个文件夹中时仍然可以在用户放置它的文件夹中找到它。

【问题讨论】:

  • ("./txtFile.txt") 不起作用吗?
  • 如果不想具体,让用户将路径作为参数传递
  • ("./txtFile.txt") 不起作用。它说“线程中的异常”main“java.io.FileNotFoundException:.\txtFile.txt(系统找不到指定的文件)”
  • @Miles 在不编写适当的代码来处理这两种情况的情况下,两者兼有(即:从 IDE 启动它时工作,从 jar 启动它时工作)有点困难。您可以尝试从./ 读取,如果它抛出FileNotFoundException,您可以从src/ 尝试,这样两种情况都会被考虑在内。但更好的是,正如 XtremeBaumer 建议的那样,要求用户提供文件的路径。
  • 尝试调用new File('.").getAbsolutePath() 并将其显示在某处,以便了解Java 认为每个实例中的“基本”目录是什么。这将帮助您了解为什么找不到文件。

标签: java


【解决方案1】:

您需要将文件路径作为main() 函数的参数(请参阅tutorial)并从中创建您的File 实例。

例子:

public static void main(String[] args) {
    if (args.length > 0) {
        final String filePath = args[0];
        File readFile = new File(filePath);
    }
}

那么可以在直接运行jar的时候传递参数

java --jar path/to/myprog.jar path/to/myfile.txt

或通过在 IDE 的启动配置中指定它。

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 2022-01-19
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 2014-01-22
    • 2023-04-05
    相关资源
    最近更新 更多