Java SE学习练习题--IO、List 配合使用
2017-11-10 11:12
507 查看
一、题目要求
1.复制上例中的Student类到本项目中;
2.在项目目录下创建文件name.txt,并写入以下内容:
it001,武松,男,22
it002,林冲,男,20
it003,卢俊义,男,18
it004,石宝,男,23
3.创建MainApp类,包含main()方法
4.在main()方法中:
1.定义一个存储Student对象的集合;
2.循环从文件中读取数据,每次读取一行,并解析每个属性值,封装到一个Student对象中,并将这个对象封装到集合中。
3.遍历集合,找到要修改的“卢俊义”,并将姓名修改为:“史文恭”。
同时将数据再次写回到文件中。
程序结束后,验证文件中的数据是否修改成功
二、代码思路
1、创建Student JavaBean对象
2、使用BufferedReader 读取数据
3、将数据设置到JavaBean对象中
4、将对象添加到集合
5、将数据从集合中取出
6、使用BufferedWriter 将数据写入到目标文件
三、代码实现
1.复制上例中的Student类到本项目中;
2.在项目目录下创建文件name.txt,并写入以下内容:
it001,武松,男,22
it002,林冲,男,20
it003,卢俊义,男,18
it004,石宝,男,23
3.创建MainApp类,包含main()方法
4.在main()方法中:
1.定义一个存储Student对象的集合;
2.循环从文件中读取数据,每次读取一行,并解析每个属性值,封装到一个Student对象中,并将这个对象封装到集合中。
3.遍历集合,找到要修改的“卢俊义”,并将姓名修改为:“史文恭”。
同时将数据再次写回到文件中。
程序结束后,验证文件中的数据是否修改成功
二、代码思路
1、创建Student JavaBean对象
2、使用BufferedReader 读取数据
3、将数据设置到JavaBean对象中
4、将对象添加到集合
5、将数据从集合中取出
6、使用BufferedWriter 将数据写入到目标文件
三、代码实现
package cn.itcast.javaseday10; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /** * * @author 大家都说名字长不会被发现 * 1.复制上例中的Student类到本项目中; 2.在项目目录下创建文件name.txt,并写入以下内容: it001,武松,男,22 it002,林冲,男,20 it003,卢俊义,男,18 it004,石宝,男,23 3.创建MainApp类,包含main()方法 4.在main()方法中: 1.定义一个存储Student对象的集合; 2.循环从文件中读取数据,每次读取一行,并解析每个属性值,封装到一个Student对象中,并将这个对象封装到集合中。 3.遍历集合,找到要修改的“卢俊义”,并将姓名修改为:“史文恭”。 同时将数据再次写回到文件中。 程序结束后,验证文件中的数据是否修改成功 */ public class HomeTest03 { public static void main(String[] args) { //定义集合来存储对象 ArrayList<Student> lists = new ArrayList<Student>(); try { //定义字符读取流 BufferedReader br = new BufferedReader(new FileReader("Student.txt")); String len; while((len = br.readLine()) != null) { //创建Student对象 Student stu = new Student(); String[] stuMessageArray = len.split(","); //将数组中的数据取出,然后设置到Student对象中 stu.setNumber(stuMessageArray[0]); stu.setName(stuMessageArray[1]); stu.setSex(stuMessageArray[2]); stu.setAge(stuMessageArray[3]); //添加对象到集合 lists.add(stu); } //关流 br.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //打印修改后的数据 System.out.println("学号\t姓名\t性别\t年龄"); try { //定义字符写入流 BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("Student.txt")); //循环集合判断元素,修改元素,并将数据重新写入 for(int i = 0; i < lists.size();i++) { //定义字符串拼接对象 StringBuilder stringBuilder = new StringBuilder(); //获取对象 Student stu = lists.get(i); //判断元素 if(stu.getName().equals("卢俊义")) { stu.setName("史文恭"); } System.out.println(stu.getNumber()+"\t"+stu.getName()+"\t"+stu.getSex()+"\t"+stu.getAge()); //拼接数据 stringBuilder.append(stu.getNumber()).append(",") .append(stu.getName()).append(",").append(stu.getSex()).append(",").append(stu.getAge()); //写入数据 bufferedWriter.write(stringBuilder.toString()); bufferedWriter.newLine(); } //关流 bufferedWriter.close(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
相关文章推荐
- C#中ListView和ImageList配合使用
- 配合实例学习php正则的使用
- python学习2-使用list
- tab与list配合使用
- Sharepoint学习笔记---SPList--使用Linq to Sharepoint间接查询External List(1.通过BCS创建External List)
- j2me学习笔记【9】——List中复选框的使用实例
- SQL语句学习,外连接与条件配合使用 (转载)
- (JAVA SE 学习笔记)Java.SE.第003讲.原生数据类型使用陷阱.Pitfall.of.Primitive.Data.Type
- C#多线程学习笔记之(abort与join配合使用)
- C#多线程学习笔记之(abort与join配合使用)
- apache mina 学习(十三)-----状态机和IoHander配合使用
- felx 入门学习笔记之6 List控件使用
- Sharepoint学习笔记—ECMAScript对象模型系列-- 5、使用ECMA操作列表对象(list)
- Sharepoint学习笔记---SPList--使用Linq to Sharepoint间接查询External List(2.复制External List内容)
- Hibernate 集合属性List 的使用----Hibernate 学习笔记总结(一)
- C#多线程学习笔记之(abort与join配合使用)
- C++标准库 之 iostream库的学习笔记(四) fstream类的使用和总结文件IO
- C#多线程学习笔记之(abort与join配合使用)
- ORM,ASP.NET中ORM学习,ASP.NET中ORM学习心得,WEB2.0中ORM实现原理,Asp.net简单ORM示例源码详细讲解,Asp.net2.0:如何使用ObjectDataSource(配合ORM )(二)
- lwuit-tab与list配合使用