我在Eclipse中创建了这个简单的程序:
import java.util.*;
import java.io.*;
public class prob1 {
public static void main(String[] args)
{
try
{
FileReader in = new FileReader("practice.in");
Scanner scanner = new Scanner(in);
while(scanner.hasNext())
{
int number = scanner.nextInt();
if(number==0)break;
int sum = 0;
for (int i=0; i<number; i++)
{
int x = scanner.nextInt();
sum += x;
}
System.out.println("Sum = "+sum);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我还在这个practice.java文件所在的文件夹中有一个“practice.in”文件(Eclipse中的src文件夹。“
然而,当我尝试运行它时,它永远找不到它。当practice.in与java文件在同一目录下时,eclipse正在做什么,我可以简单地做FileReader(“practice.in”)?这与我的工作目录有关吗?
答案 0 :(得分:3)
eclipse中的默认文件夹是项目根目录,而不是src文件夹。您需要移动文件或指定“src / practice.in”的相对路径
答案 1 :(得分:2)
如果practice.in
级别与您的java文件位于同一目录级别,那么您也可以使用[Class.getResourceAsStream()
](http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)):
InputStream steam = prob1.class.getResourceAsStream("practice.in");
Scanner scanner = new Scanner(stream);
...
无论你在哪里调用java文件,这都可以。
答案 2 :(得分:0)
Java将访问相对于运行java命令的目录的文件,这是您的项目根目录。因此,您必须从项目根目录开始提供该文件的完整路径。
此外,如果您是Spring库,则可以使用应用程序上下文在类路径中的任何位置查找具有给定名称的文件。