【发布时间】:2012-06-09 03:47:08
【问题描述】:
这是我的程序,它从一个文件中读取,但我因为文件阅读器的讲座而离开了,所以我准备好了。 该程序当前读取一行并从中打印出前 3 个值,但它仅适用于文件中的一行。
import java.util.*;
import java.io.*;
public class ProcessdatdereFile
{
public static void main (String[] args)throws IOException{
List namenum=readM("data/raw.txt");
dataProcess(namenum);
}
public static List readM(String filename)throws IOException{
Scanner fr=new Scanner(new FileReader(filename));
List<String>namenum=new ArrayList<String>();
while(fr.hasNext()){
namenum.add(fr.next());
}
fr.close();
Collections.sort(namenum,Collections.reverseOrder());
return namenum;
}
public static void dataProcess(List namenum)throws IOException{
for(int i=0;i<4;i++){
System.out.printf("%s ",namenum.get(i));
}
System.out.println("");
}
}
raw.txt 包含
Mary 45 87 23 76
Joe 34 76 12 78 34 87
Anne 90 5 99
程序需要在单独的行上打印每个名称和前 3 个分数。 欢迎长篇大论。 提前致谢。
【问题讨论】:
-
什么问题?什么问题?
-
把 fr.next() 改成 fr.nextLine()?
标签: java java-io filereader