我能';我似乎无法让Java阅读我的文本文档

我能';我似乎无法让Java阅读我的文本文档,java,text,Java,Text,我有一个AP Comp课程的项目,我根据笔记做了工作,但是文件“数字”没有被读取,当它应该是一个巨大的数字时,我得到了答案0 import java.util.Scanner; public class Average { public void Average() { Scanner in = (new Scanner("J:\\AP Comptuter Science\\Semester 2\\Exeptions\\13.1\\numbers.txt"));

我有一个AP Comp课程的项目,我根据笔记做了工作,但是文件“数字”没有被读取,当它应该是一个巨大的数字时,我得到了答案0

import java.util.Scanner;
public class Average
{
    public void Average()
    {
        Scanner in = (new Scanner("J:\\AP Comptuter Science\\Semester 2\\Exeptions\\13.1\\numbers.txt"));
        try{
            String test = in.nextLine();
        } catch(NullPointerException i) {
            System.out.println("Error: " + i.getMessage());
        }

        int total = 0;
        int counter = 0;

        while(in.hasNextInt()){
            total = total + in.nextInt();
            counter++;
        }
        total = total / counter;
        System.out.println(total);
    }
}
您正在呼叫,它不读取文件;它扫描字符串本身

您需要的可能是:

new Scanner("J:\\AP Comptuter Science\\Semester      2\\Exeptions\\13.1\\numbers.txt")
你还需要检查路径,几乎可以肯定在“学期”和“2”之间没有5个空格

总的来说,我强烈建议您在调试器中逐步完成代码,而不仅仅是运行。如果你这样做了,你会在执行后看到这一点

new Scanner(new File("J:\\AP Comptuter Science\\Semester      2\\Exeptions\\13.1\\numbers.txt"))
字符串
test
包含文件名而不是其内容


<> P.>还有其他改进可能,考虑在您可以工作

后在CooDeVIEW StExchange中发布。首先,您应该更正您的路径,并且可能将其放在与类文件相同的目录中。除了提供扫描器的路径,你还应该给它一个文件。应该是这样的

String test = in.nextLine();

如前所述,该准则存在几个问题:

a)
新扫描仪(字符串)
读取字符串而不是文件

b) 路径似乎不正确

c) 处理
DivideByZero
FileNotFound
异常

请参阅以下代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Average
   {

        public void printAverage(){
            File file = new File(""J:\\AP Comptuter Science\\Semester 2\\Exeptions\\13.1\\numbers.txt"");
            Scanner scan;

            try {
                scan = new Scanner(file);
                int total = 0, counter = 0;

                while(scan.hasNextInt()){
                    System.out.println("loop");
                    total = total + scan.nextInt();
                    counter++;

                }
                if(counter != 0)
                    total = total/counter;
                System.out.println(total);

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }

        }

   }

这仅适用于numbers.txt,它的整数按
Scanner
类的
nextInt()
方法的要求用空格分隔。

您确定该路径吗?真的确定吗<代码>第二学期?检查扫描仪路径中的间距,例如扫描仪in=(新扫描仪(“J:\\AP Computer Science\\Semester2\\Exceptions\\13.1\\numbers.txt”);“不被阅读”这是什么意思?你有错误吗?例如。。。。也许是被零除了?这五个空格是我用来格式化文件的,所以我可以发布代码。但更重要的是,你使用了错误的方法。我得到了错误未报告的异常java.io.FileNotFoundException;必须捕获或声明要抛出突出显示的部分是Scanner in=(新的Scanner(文件));非常感谢你,我意识到我的输入是错误的,为什么它不起作用,现在我比较了两者。
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.io.File;
public class Average{
    public void average(){
        Scanner in = null;
        try{
            in = (new Scanner(new File("J:\\AP Comptuter Science\\Semester 2\\Exeptions\\13.1\\numbers.txt")));
            String test = in.nextLine();
        }
        catch(NullPointerException | FileNotFoundException i){
            System.out.println("Error: " + i.getMessage());
        }
        int total = 0;
        int counter = 0;
        while(in != null && in.hasNextInt())
        {
            total = total + in.nextInt();
            counter++;
        }
        Float average = null;
        if (counter > 0) { //to avoid divide by zero error
            average = (float)total / counter;
            System.out.println("Average: "+average);
        }
    }

    public static void main(String args[]){
        new Average().average();
    }
}