IO流(1)-键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件
1.先写一个Student类
public class Student {
private String name;
private int chinese;
private int math;
private int english;
public Student() {
super();
}
public Student(String name, int chinese, int math, int english) {
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
this.chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public int getTotal(){
return (this.chinese + this.math + this.english);
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", chinese=" + chinese +
", math=" + math +
", english=" + english +
'}';
}
}
Student
2.录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.TreeSet; public class Demo {
public static void main(String[] args) throws IOException {
//创建5个学生对象
Student s1 = new Student("孙悟空",80,80,80);
Student s2 = new Student("猪八戒",90,90,90);
Student s3 = new Student("玉皇大帝",100,100,100);
Student s4 = new Student("嫦娥",100,100,100);
Student s5 = new Student("白骨精",90,80,100); //按照总分从高到低存入TreeSet
TreeSet<Student> set = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int cmp1 = s2.getTotal() - s1.getTotal();//总分从高到低排序
int cmp2 = cmp1 == 0 ? s2.getName().compareTo(s1.getName()) : cmp1;//保证可以出现总分相同但是名字不同的学生
return cmp2;
}
}); //将学生信息存入集合
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.add(s5); //3.遍历集合并写入文件
BufferedWriter writer = new BufferedWriter(new FileWriter("Day27_Thread01\\student.txt"));
for (Student s :set) {
StringBuilder sb = new StringBuilder("姓名:" + s.getName() + ", 语文成绩:" + s.getChinese() +
", 数学成绩:" + s.getMath() + ", 英语成绩:" + s.getEnglish());
writer.write(sb.toString());
writer.newLine();
writer.flush();
}
writer.close();
}
}
Demo
3.键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet; public class Demo2 {
public static void main(String[] args) throws IOException {
//创建TreeSet集合
TreeSet<Student> set = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int cmp1 = s2.getTotal() - s1.getTotal();
int cmp2 = cmp1 == 0 ? s2.getName().compareTo(s1.getName()) : cmp1;
return cmp2;
}
}); for (int i = 0;i < 5;i++){
//输入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的姓名:");
String name = sc.nextLine();
System.out.println("请输入该学生的语文成绩:");
int chinese = sc.nextInt();
System.out.println("请输入该学生的数学成绩:");
int math = sc.nextInt();
System.out.println("请输入该学生的英语成绩:");
int english = sc.nextInt(); //创建学生对象并录入信息
Student s = new Student();
s.setName(name);
s.setChinese(chinese);
s.setMath(math);
s.setEnglish(english); //将学生添加到集合里
set.add(s);
} //3.遍历集合并写入文件
BufferedWriter writer = new BufferedWriter(new FileWriter("Day27_Thread01\\student.txt"));
for (Student s :set) {
StringBuilder sb = new StringBuilder("姓名:" + s.getName() + ", 语文成绩:" + s.getChinese() +
", 数学成绩:" + s.getMath() + ", 英语成绩:" + s.getEnglish());
writer.write(sb.toString());
writer.newLine();
writer.flush();
} //关闭资源
writer.close();
}
}
Demo2
IO流(1)-键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件的更多相关文章
- Java基础知识强化之IO流笔记51:IO流练习之 键盘录入学生信息按照总分排序写入文本文件中的案例
1. 键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分排序写入文本文件中 分析: A:创建学生类 B:创建集合对象 TreeSet<Student> ...
- java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数
package com.swift.jinji; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im ...
- IO流的练习4 —— 键盘录入学生成绩信息,进行排序后存入文本中
需求: 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件 分析: A:创建学生类 B:创建集合对象 TreeSet<Student> C:键盘录入学 ...
- Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台
1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台: 分析: A: 定义学生类 B: 创建一个TreeSet集合 C: 总分从高到底如何实现 ...
- java 使用面向对象方式实现录入学生信息,取出成绩最大值、最小值、平均值、对其进行排序
题目: java 使用面向对象方式实现录入学生信息,取出成绩最大值.最小值.平均值.对其进行排序 gitup源码下载地址: https://github.com/benxiaohai8888/Java ...
- sqlserver 查询各个学生语文、数学、英语、历史课程成绩
-- 建表 插入数据 USE 你自己的数据库; CREATE TABLE Member( MID ) PRIMARY KEY, MName ) ); CREATE TABLE Course( FID ...
- IO—转换流和键盘录入
简单来说,由于方法的局限性和功能的需要,特此产生了转换流. InputStreamReader是字节流转换字符流的桥梁,为了提高效率,可以在缓冲区中放入转化流的对象,,并且构造函数第二个参数可以传入一 ...
- java IO(四):键盘录入
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...
随机推荐
- 使用Xcode连接开源中国
故事背景: 今天加入一个新的项目组,其实也就是包括我在内就两个人,由于对方在开源中国上建的项目我没法使用. 所以由我接手第一个任务:就是在开源中国上搭建git项目组 前提条件:xcode和 Git(h ...
- [LUOGU] 3959 宝藏
https://www.luogu.org/problemnew/show/P3959 注意到n非常小,考虑状压/搜索. 发现状压需要枚举起点,跑n次,一个问题是转移不可以以数字大小为阶段了,考虑用d ...
- Mac OSX: 有线共享WiFi
首先连上有线 系统偏好设置->网络->点击左侧WiFi,再点击右下角[高级] 勾选[创建电脑对电脑网络],然后单击[好] 在顶部菜单栏击WiFi图标,如果WiFi未打开,则单击打开,如果已 ...
- Ubuntu中安装配置 JDK与apache
一,前期准备: 1.下载apach网址:https://tomcat.apache.org/download-90.cgi 3.下载:jdk网址:http://www.oracle.com/techn ...
- The twelve Day-前端之html
前端知识之html内容 HTML介绍 1.web服务本质 import socket sk = socket.socket() sk.bind(()) sk.listen() while True: ...
- [Redis]ResponseError: Client sent AUTH, but no password is set
由于在代码中给redis添加了密码,如下 redis_store = redis.Redis(host='localhost', port=6379, db=4, password='root') 然 ...
- 生物信息学练习2- Biom-format
The Biological Observation Matrix (BIOM) format http://biom-format.org/ biom-format有两种方式安装: 1. pytho ...
- bs4--官方文档
如何使用 将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄. from bs4 import BeautifulSoup soup = ...
- css 元素垂直居中
通用 <div id="parent"> <div id="child">Content here</div> </d ...
- Visual studio 新建网站出现序号(x)
参考链接: http://www.zhongdaiqi.com/vs2012-new-website-name-bug/ 现象: 分析: VS新建网站出现(1) 这个问题很神秘,把网站删除掉,再创建, ...