有一个txt文档,java读取。

有一个txt文档,上面有几个人的成绩,比如为ABCD四人,他们分别考了60,90,80,75.请问如何用java编写一个程序读取这个txt文档并且在程序中把他们的名次从高... 有一个txt文档,上面有几个人的成绩,比如为ABCD四人,他们分别考了60,90,80,75.请问如何用java编写一个程序读取这个txt文档并且在程序中把他们的名次从高到底排序,并且打印出第一名和最后一名。求大神解答。 展开
 我来答
育知同创教育
2016-07-04 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
代码如下:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class H {
/**
* 功能:Java读取txt文件的内容
* 步骤:1:先获得文件句柄
* 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
* 3:读取到输入流后,需要读取生成字节流
* 4:一行一行的输出。readline()。
* 备注:需要考虑的是异常情况
* @param filePath
*/
public static void readTxtFile(String filePath){
try {
String encoding="GBK";
File file=new File(filePath);
if(file.isFile() && file.exists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while((lineTxt = bufferedReader.readLine()) != null){
System.out.println(lineTxt);
}
read.close();
}else{
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}

}

public static void main(String argv[]){
String filePath = "L:\\20121012.txt";
// "res/";
readTxtFile(filePath);
}

}
百度网友062f9c8
2016-07-04 · TA获得超过1254个赞
知道小有建树答主
回答量:840
采纳率:60%
帮助的人:729万
展开全部

我写一个最简单的demo吧:

txt文件如下:

score.txt ——

Tom:80
Jack:60
Lily:90
Vicer:85

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class TestTxt {
    
    public static final List<Score> scores = new ArrayList<Score>();//存放所有学生的成绩情况
    
    public static void main(String[] args) throws Exception {
        String path = "F:/score.txt";
        read(path);
        //实现排序   也可Score类implements Comparable 
        scores.sort(new Comparator<Score>(){
            @Override
            public int compare(Score a, Score b) {
                return b.getScore() - a.getScore();
            }});
        
        System.out.println("最高分:" + scores.get(0).toString());
        System.out.println("最低分:" + scores.get(scores.size()-1).toString());
        
    }
    
    public static void read(String path) throws Exception{
        File txt = new File(path);
        if(txt.exists() && txt.isFile()) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(txt), "UTF-8"));
            String line = null;
            while((line = reader.readLine()) != null) {
                String name = line.split(":")[0];
                int score = Integer.parseInt(line.split(":")[1]);
                scores.add(new Score(name, score));
            }
            
        }
    }
}


//学生成绩类
class Score{
    private String name;
    
    private int score;

    
    
    public Score(String name, int score) {
        super();
        this.name = name;
        this.score = score;
    }

    public String toString(){
        return name + "的分数为 " + score;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
    
    
    
}

运行结果:

最高分:Lily的分数为 90
最低分:Jack的分数为 60

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式