FileWriter无法解析构造函数

时间:2013-12-02 14:04:19

标签: java file ioexception

这是一个相对简单的问题,但我看不出有什么问题。这是我的代码:

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

3 个答案:

答案 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