【问题标题】:Opening a Text File in Java [duplicate]在 Java 中打开文本文件 [重复]
【发布时间】:2016-02-11 15:42:31
【问题描述】:

在我正在处理的程序中,我试图从项目文件夹中打开一个文本文件,以便以后可以将文件中的整数读取到数组中。我目前正在努力让编译器找到文件。这是我之前做过几次的事情,但是这一次我目前收到一个错误,说系统找不到指定的文件。我的代码的主类部分,发生文件的读取和写入,如下所示:

    if ("input".equals(input)) {
        System.out.println("Please enter the name of the input file: ");
        String filename = scanIn.nextLine();
         Scanner scanner = new Scanner(new File(filename));
        BufferedReader br = new BufferedReader(
    new InputStreamReader(new FileInputStream(filename)));
        int lineCount = 0;
        while (br.readLine() != null) {
            lineCount++;

        }

当提示我输入 sample.txt 时,项目文件夹中的文本文件的名称会产生错误。我在这里忽略了什么会导致这个问题吗?

编辑:这样做的最终目标是将文件中的整数加载到数组中,然后对数组执行快速排序以对其进行排序。

编辑 2:回想起来,这听起来像是我的一个非常愚蠢的错误,但我发现了我的问题所在。由于此问题已被标记为重复,因此我无法将其发布为答案,因此我将其发布为编辑。在创建我的文本文件时,文件名变成了“sample.txt.txt”而不是“sample.txt”,导致系统无法找到该文件。代码或文件路径没有问题,只是我在命名文件时犯了一个愚蠢的错误。

【问题讨论】:

  • 这个sample.txt是否存在于同一个目录中..
  • sample.txt 与 build 和 src 文件一起存在于主目录中,这是我以前从文件中读取文件时一直放置的地方,没有遇到任何问题
  • 问和回答的次数太多了。您是否至少检查了用户目录以查看文件路径与此相关?

标签: java file io java.util.scanner


【解决方案1】:

你可以试试下面的代码

 ClassLoader cLoader = this.getClassLoader();
 InputStream i = cLoader.getResourceAsStream("sample.txt");

【讨论】:

  • OP 想从 cmd 读取它而不是在代码中..
  • 不,我不认为 OP 想要读取资源而是文件......无论如何,我们不知道,所以这充其量只是一个猜测,即不是答案。跨度>
  • 使用上面的代码,你可以读取与类在同一个包中的文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 2012-05-24
  • 2015-02-13
  • 1970-01-01
  • 2015-10-25
  • 2015-11-14
  • 2018-10-12
相关资源
最近更新 更多