BufferedReader和BufferedWriter读写文件
来源:互联网 发布:手机修改mac地址 编辑:程序博客网 时间:2024/05/20 20:43
package com.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StudentInfo implements Comparable<StudentInfo> { private String id; //学号 private String name; //学生姓名 private String birthday; //出生日期 private String score; //分数 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getScore() { return score; } public void setScore(String score) { this.score = score; } /** * * {排序方法} * * @param objStu * @return * @author:LJ */ public int compareTo(StudentInfo objStu) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //得分相同时按照出生日期升序排序 if (this.score.equals(objStu.getScore())) { //格式化日期字符串 Date date1 = null; try { date1 = dateFormat.parse(this.birthday); } catch (ParseException e1) { e1.printStackTrace(); } Date date2 = null; try { date2 = dateFormat.parse(objStu.getBirthday()); } catch (ParseException e2) { e2.printStackTrace(); } //出生日期升序排序 return date1.compareTo(date2); } //得分从高到低排序 return objStu.getScore().compareTo(this.score); } }
2.读写文件类StudentFile.java
package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class StudentFile { /** * * {根据路径读取学生文件信息} * * @param path * @return List<StudentInfo> * @throws Exception * @author:LJ */ public List<StudentInfo> readFile(String path) throws Exception { List<StudentInfo> studentList = new ArrayList<StudentInfo>(); BufferedReader br = null; try { br = new BufferedReader(new FileReader(path)); String line = null; StudentInfo student = null; while ((line = br.readLine()) != null) { student = new StudentInfo(); //将字符串分割成字符串数组 String[] studentStr = line.split(","); student.setId(studentStr[0]); student.setName(studentStr[1]); student.setBirthday(studentStr[2]); student.setScore(studentStr[3]); studentList.add(student); } } catch (FileNotFoundException e) { throw new Exception("源文件未找到", e); } catch (IOException e) { throw new Exception("读文件异常.", e); } finally {//资源关闭 if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return studentList; } /** * * {将学生信息写入目标文件} * * @param studentList * @param dstPath * @throws Exception * @author:LJ */ public void writeFile(List<StudentInfo> studentList, String dstPath) throws Exception { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(dstPath)); if (studentList != null && !studentList.isEmpty()) { for(StudentInfo stu:studentList) { bw.write(stu.getId()+","+stu.getName()+","+stu.getBirthday()+","+stu.getScore()); bw.newLine();//换行 } } bw.flush();//强制输出缓冲区的内容,避免数据缓存,造成文件写入不完整的情况。 } catch (IOException e) { throw new Exception("目标文件未找到", e); } finally { //资源关闭 if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
3.编写main方法
package com.test; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Test { /** * {main方法} * * @param args * @author:LJ * @throws Exception */ public static void main(String[] args) throws Exception { String srcPath = "C:" + File.separator + "test" + File.separator + "student.txt"; String dstPath = "C:" + File.separator + "test" + File.separator + "result.txt"; //从源文件读取学生信息 StudentFile fileStu = new StudentFile(); List<StudentInfo> studentList = fileStu.readFile(srcPath); //临时数组,作排序用 List<StudentInfo> tempList = new ArrayList<StudentInfo>(); for (int i = studentList.size()-1; i > 0; i--) { //将学生信息存入临时数组,并从原数组中删除,行标题除外 tempList.add(studentList.get(i)); studentList.remove(i); } //对临时数组进行排序 Collections.sort(tempList); for (int i=0,n = tempList.size(); i < n; i++) { //将排序后数组追加到原数组中 studentList.add(tempList.get(i)); } //将学生信息写入目标文件 fileStu.writeFile(studentList, dstPath); } }
0 0
- BufferedReader和BufferedWriter读写文件
- BufferedReader和BufferedWriter读写文件
- bufferedReader和bufferedWriter的执行读写文件
- 使用BufferedReader和BufferedWriter按行读写文件
- 使用BufferedReader和BufferedWriter按行读写文件
- 使用BufferedReader和BufferedWriter按行读写文件
- Java利用BufferedWriter和BufferedReader读写文本文件
- java 通过bufferedReader和bufferedWriter 拷贝文件
- java IO,bufferedReader/bufferedWriter对文件的读写
- BufferedReader和BufferedWriter读写中文乱码的解决方法
- BufferedReader和BufferedWriter
- BufferedReader 和BufferedWriter
- BufferedWriter和BufferedReader
- BufferedReader和BufferedWriter使用
- BufferedReader和BufferedWriter
- BufferedReader和BufferedWriter
- BufferedReader和BufferedWriter
- BufferedReader和BufferedWriter
- python升级
- 【PHP入门篇】3.常量--慕课网【学习总结】
- cocos2d-x学习笔记【二】导演、场景、层。精灵介绍
- 《Linux device driver》字符设备和scull
- linux 汇编学习
- BufferedReader和BufferedWriter读写文件
- 12.使用命令对用户进行管理
- 【ITOO 2】.NET 动态建库建表:使用SQL字符串拼接方式
- 块元素、内联元素、inline-block的特点
- Android 网络通信框架Volley完全解析(一)
- VS中调试DLL工程的正确方法
- Android的目录结构说明
- char to int
- zzuoj--10400--海岛争霸(并查集)