在java中读取并使用txt文件

在java中读取并使用txt文件,java,file,loops,io,Java,File,Loops,Io,我正试图在CS简介课程中完成我的实验,但在从txt文件中读取信息并使用它时遇到了困难 以下是我目前的代码: import java.io.*; import java.util.*; public class loops { public static void main (String [] args) throws FileNotFoundException{ File myFile = new File("Snowboard_Scores.txt"); Scanner input =

我正试图在CS简介课程中完成我的实验,但在从txt文件中读取信息并使用它时遇到了困难

以下是我目前的代码:

import java.io.*;
import java.util.*;

public class loops {
public static void main (String [] args) throws FileNotFoundException{

File myFile = new File("Snowboard_Scores.txt");
Scanner input = new Scanner(myFile);

String name;
String country;
int snow1;
int snow2;
int snow3;
double score;
int max = 0;

while (input.hasNext() ){
    System.out.println(input.nextLine());
    max++;
}
System.out.println(max);

for (int count = 0; count < max; count ++){

}
}
}
太简单了
在读取数据时处理数据
阅读每个滑雪板,并与最佳prev值进行比较
然后选择最佳值作为最佳值;请参阅下面的代码

import java.io.*;
import java.util.*;

public class loops {
public static void main (String [] args) throws FileNotFoundException{

    File myFile = new File("Snowboard_Scores.txt");
    Scanner input = new Scanner(myFile);

    String name = "";
    String country = "";
    double score = 0.0;

    while (input.hasNext() ){
        String tmp_name = input.nextLine();
        String tmp_country = input.nextLine();
        double tmp = Double.parseDouble(input.nextLine())/3;
        tmp += Double.parseDouble(input.nextLine())/3;
        tmp += Double.parseDouble(input.nextLine())/3;
        if(tmp > score){
            name = tmp_name;
            country = tmp_county;
            score = tmp;
        }
    }
    System.out.println(name);
    System.out.println(country);
}

你说得对。一行遗漏了

只是稍微修改一下

while (input.hasNext()){

 String tmp_name = input.nextLine();
 String tmp_country = input.nextLine();

 double tmp_avg = Double.parseDouble(input.nextLine())/3;
 tmp_avg += Double.parseDouble(input.nextLine())/3;
 tmp_avg += Double.parseDouble(input.nextLine())/3;

 if(tmp_avg > score){
  score = tmp_avg;
  name = tmp_name;
  country = tmp_country;
 }
}

文件
Snowboard_Scores.txt
怎么样?对不起,应该加上这个。它一行一行地进行,第一行名称第二行国家2-5行分数6行名称7行国家,等等。你说过你不能使用数组。你能用什么?While循环,For循环,计数器。我很抱歉,这只是我们的第四个实验任务,因此对于经验丰富的程序员来说,这些限制可能会有点令人沮丧。更好的方法是使用属性名创建类滑雪板,country和avrg分数。迭代文件并创建对象并将其设置到列表中。然后,您可以轻松找到最佳分数—您在初始化分数后从不修改分数。国家后=tmp_县;分数=tmp?这是可行的,但是无论出于什么原因,国家的名称都不会显示。我认为您的输入文件有空行。检查一下
while (input.hasNext()){

 String tmp_name = input.nextLine();
 String tmp_country = input.nextLine();

 double tmp_avg = Double.parseDouble(input.nextLine())/3;
 tmp_avg += Double.parseDouble(input.nextLine())/3;
 tmp_avg += Double.parseDouble(input.nextLine())/3;

 if(tmp_avg > score){
  score = tmp_avg;
  name = tmp_name;
  country = tmp_country;
 }
}