我能';我似乎无法让Java阅读我的文本文档
我有一个AP Comp课程的项目,我根据笔记做了工作,但是文件“数字”没有被读取,当它应该是一个巨大的数字时,我得到了答案0我能';我似乎无法让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"));
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();
}
}