从txt文件读取调查结果并输出每个调查答案频率的Java程序
我必须编写两个程序。第一个程序输出一个调查,用户必须输入一个介于1-5(1为低分,5为最高分)之间的评分,然后输入他们的姓名。然后,程序将用户键入的任何内容发送到一个名为responses的txt文件。txt
第二个程序(我遇到问题的程序)应该从文本文件中读取数据,然后输出一个表格,显示每个评级的输入频率。例如:
Rating Frequency
1 7
2 4
3 2
4 0
5 0
我设置它的方式是我有两个文件,一个java文件,它应该完成我上面提到的所有事情。第二个java文件只是通过调用前面提到的第一个java文件中的所有方法来测试程序。 我编译任何文件都没有问题,所以我在这方面做得很好
但是,当我尝试运行测试文件时,出现以下错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.utiol.Scanner.nextInt(Scanner.java:2076)
at ReadResonseFile.readRecords(ReadResponseFile.java:43)
at ReadResponseFileTest.main(ReadResponseFileTest.java:8)
据我所见,问题似乎出在readRecords方法上。我的问题是我能做些什么来解决这个问题,如果我在代码中遗漏了任何需要的内容,那是什么?任何帮助都将不胜感激
这是我到目前为止所拥有的
ReadResponseFile。爪哇
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadResponseFile {
private Scanner input;
int[] frequency= new int[5];
public void openFile()
{
try {
input = new Scanner(new File("responses.txt"));
}//end try
catch (FileNotFoundException fileNotFoundException) {
System.err.println("Error opening file.");
System.exit(1);
}//end catch
}//end method openFile
public void readRecords()
{
SurveyResponseRecord record = new SurveyResponseRecord();
System.out.printf("%-10s%-12s\n", "Rating", "Frequency");
while (input.hasNext()) {
record.setRating(input.nextInt());
frequency[0] = 0;
frequency[1] = 0;
frequency[2] = 0;
frequency[3] = 0;
frequency[4] = 0;
System.out.printf("%-10s\n", record.getRating());
}//end while
}//end method readRecords
public void closeFile()
{
if (input != null)
input.close();
}//end method closeFile
}//end class ReadResponseFile`
ReadResponseFileTest。爪哇
public class ReadResponseFileTest
{
public static void main( String[] args)
{
ReadResponseFile application = new ReadResponseFile();
application.openFile();
application.readRecords();
application.closeFile();
}//end main
}//end class ReadResponseFileTest
# 1 楼答案
对于执行Java程序时的输入值,请使用GUI或使用系统。在扫描仪中
如果您只想读取TXT文件,请使用BufferedReader并使用