有一个txt文档,java读取。
有一个txt文档,上面有几个人的成绩,比如为ABCD四人,他们分别考了60,90,80,75.请问如何用java编写一个程序读取这个txt文档并且在程序中把他们的名次从高...
有一个txt文档,上面有几个人的成绩,比如为ABCD四人,他们分别考了60,90,80,75.请问如何用java编写一个程序读取这个txt文档并且在程序中把他们的名次从高到底排序,并且打印出第一名和最后一名。求大神解答。
展开
2个回答
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);
}
}
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);
}
}
展开全部
我写一个最简单的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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询