这是一个相对简单的问题,但我看不出有什么问题。这是我的代码:
public class Average {
public double findAverage(){
try {
long total = 0;
int count = 0;
FileWriter f = new FileWriter("C:\\Users\\Bob\\Desktop\\numbers.txt");
Scanner in = new Scanner(f);
while (in.hasNext()){
total += in.nextInt();
count++;
}
return total/count;
} catch (IOException e){
System.out.println(e.getMessage());
return 0;
}
}
在(f)下编译器说“无法解析构造函数Scanner(java.io.FileWriter)。我不明白我做错了什么。”
我尝试过:
Scanner in = new Scanner(new File("numbers.txt"));
并将我的文件放在我所有的java文件所在的位置并且工作正常。但是,当文件在其他地方时,我明确需要让它工作,我似乎不知道如何做到这一点。那么我做错了什么?
编辑:
我发现了自己的错误。如果其他任何人可能会对此有用,我应该使用new File
代替new fileWriter
。
答案 0 :(得分:1)
您无法将FileWriter传递给Scanner。看看documentation。
答案 1 :(得分:-1)
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Average {
public double findAverage(){
try {
long total = 0;
int count = 0;
FileReader f = new FileReader("C:\\Users\\xyz\\Desktop\\numbers.txt");
Scanner in = new Scanner(f);
while (in.hasNext()){
total += in.nextInt();
count++;
}
return total/count;
} catch (IOException e){
System.out.println(e.getMessage());
return 0;
}
}
public static void main(String[] args) {
Average ob=new Average();
ob.findAverage();
}
}
答案 2 :(得分:-2)
试
FileWriter f = new FileWriter(new File("C:\\Users\\Cristian\\Desktop\\numbers.txt"));
这不是解决方案,只是删除了编译错误。
return total/count; // Integer division