为什么java没有找到我的文件

时间:2013-10-13 01:53:18

标签: java input

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

IdealWeight.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!");
       }
    }
}

3 个答案:

答案 0 :(得分:3)

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

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

只是另一个想法。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

检查运行该命令的结果,并告诉您文本文件的放置位置。一旦你将文本文件放在正确的位置,那么你发布的代码应该可以正常工作。