0

尝试学习如何在 Java 中读取文本文件。我已将文本文件放在与 IdealWeight.java 相同的文件夹中。我在这里错过了什么吗?

理想体重.java

package idealweight;

import java.util.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class IdealWeight 
{
    public static void main(String[] args) 
    {
       Scanner fileIn = null; //Initializes fileIn to empty
       try 
       {
           fileIn = new Scanner
                   (
                        new FileInputStream
                            ("Weights.txt") 
                   );
       }
       catch (FileNotFoundException e)
       {
           System.out.println("File not found!");
       }
    }
}
4

3 回答 3

3

您也可以将文件放在类路径中,然后执行以下操作:

InputStream in = this.getClass().getClassLoader()
                                .getResourceAsStream("Weights.txt");

只是另一个想法。

于 2013-10-13T02:00:40.083 回答
1

java 文件 IO 系统不会在与类相同的目录中查找文件,而是在应用程序的“默认”目录中查找文件。您运行的任何应用程序都有一个默认目录,它会尝试打开该文件。尝试将完整路径名放入文件。

或者将要读取的文件放在一个目录中,然后使用“java IdealWeight”从该目录(在终端窗口中)运行应用程序。

于 2013-10-13T01:55:50.767 回答
0

您需要将Weights.txt放在您的工作目录中,而不是放在源文件所在的目录中。如果您使用的是 Eclipse 或类似的 IDE,这可能是项目根目录。根据此答案,您可以使用此代码段获取工作目录的完整路径:

System.out.println("Working Directory = " + System.getProperty("user.dir"));

检查运行该命令的结果,这应该会告诉您将文本文件放在哪里。将文本文件放在正确的位置后,您发布的代码应该可以正常工作。

于 2013-10-13T01:58:21.753 回答