一、题目要求
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,武松,男,22it002,林冲,男,20it003,卢俊义,男,18it004,石宝,男,233.创建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 blocke.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 blocke1.printStackTrace();}}
}

Java SE学习练习题--IO、List 配合使用相关推荐

  1. JAVA SE学习day_05: IO与流操作

    一.IO与流 以程序为主体,input(输入)是读.获取.使用输入流的过程,output(输出)是写.发送的过程. JAVA IO 标准的输入与输出 JAVA IO将读和写按照方向划分为: 输入:用于 ...

  2. 第一阶段Java SE学习概述

    Java SE学习概述 Java SE 学习分为五个阶段 第一部分:基础程序设计: 第二部分:面现象对象编程: 第三部分:Java SE 高级应用: 第四部分:JavaSE 新特性: 第五部分:MyS ...

  3. Java SE 学习记录——进阶版11

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门[网络编程] 第一章 网络编程入门 1.1 软件结构 22-02 软件结构 1.2 网络通信协议 2 ...

  4. Java SE 学习记录06

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门 day06-01 面向对象 package day06;import java.util.Arra ...

  5. 一个编程小白的Java SE学习日志 Ⅵ——继承【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)3.25~3.29编写 自我问答 任务导引:电子宠物Beta 任务UML图 继承 什么是继承? 如何实现继承? 案例 子类可以继承父类所有的成员和方法? 继承的特点 ...

  6. Java SE 学习笔记5 Java阶段复习

    计算机.Java基础 一.计算机 1.硬件介绍 2.中央处理器 3.比特(bit)和字节(byte) 4.内存 5.存储设备 6.输入和输出设备 二.Java介绍 1.常用的dos命令 2.java语 ...

  7. 一个编程小白的Java SE学习日志 X—— 输入输出(IO)流【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)4.30~5.7编写 File类 File类的构造方法 File类常用方法 File类的一些常用方法实例 IO流 IO流的分类 按数据流的方向分类 按是否直接操作源或 ...

  8. JAVA SE学习笔记(七):终章:Java程序设计基础笔记(全10万字)

    Java程序设计入门 ​                                              copyright © 2020 by 宇智波Akali 目录 文章目录 第1章 J ...

  9. JAVA SE 学习day_10:集合、聊天室练习最终版

    一.集合 集合框架 java.util.Collection接口:该接口是所有集合的顶级接口,规定了所有集合都应当具备的 功能方法 * Collection下面又分为不同的集合类型,常见的有两个: j ...

  10. JAVA SE学习day_08:TCP通信、多线程(并联)

    为了解决在程序中不同客户端在同一服务端中都可以进行数据发送的情况,要使用多线程将其进行并联操作 一.多线程 线程可以并发执行多个代码片段,使得这些代码片段直接运行是互不干涉的: 创建线程有两种方式, ...

最新文章

  1. 中序非递归遍历二叉树
  2. 当我们在谈大前端的时候,我们谈的是什么
  3. 数据结构 线性存储 -- 栈 讲解
  4. 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!
  5. vivo计算机隐藏游戏,vivo
  6. 2017.6.11 校内模拟赛
  7. IntelliJ IDEA 2021.2 正式发布
  8. Decoda Tutorial LUA调式器
  9. Python 爬取考研数据:所有 985 高校、六成 211 高校均可调剂!
  10. 从高的角度看自动化测试
  11. 单链表的插入和遍历 包括头插入和尾插入
  12. pyinstaller下载_《快速掌握PyQt5》第二十五章 Pyinstaller打包
  13. linux 3.2.0 卸载,linux python3编译以及 卸载,python默认为python3 ,pip默认为pip3,亲测版...
  14. android studio2.3.6,Android Studio 2.3 问题汇总 - 解决一切障碍,为了更好的时代
  15. android手机iPhone对比,安卓手机与苹果手机功能对比【详细介绍】
  16. 高等代数——大学高等代数课程创新教材(丘维声)——2.4笔记+习题
  17. Linux终端下载百度云,Linux终端使用wget下载百度云资源
  18. 【游戏】[C++] 贪吃蛇控制台版
  19. php我的世界网页地图,探险家地图 - Minecraft Wiki,最详细的官方我的世界百科
  20. 电脑桌面打开计算机打开多个,如何在电脑桌面并排显示多个Excel工作表

热门文章

  1. 一波三折:杜邦线母头制作的故事
  2. VALSE2022内容总结
  3. 英语对程序员来讲有多重要?会英语的程序员和不会英语的程序员有什么差距?
  4. 如何把多张图片快速的拼接在一起?如何拼接多张图片?
  5. 软件岗位--CTO、技术VP、技术总监、首席架构师
  6. 【机器学习】 吴恩达机器学习作业 ex1 python实现+Matlab实现
  7. 前端canvas制作微信小游戏(二)
  8. word流程图怎么使箭头对齐_word里流程图的直角箭头怎么画
  9. 用照片进行三维模型重建
  10. 数据结构之图(九)——拓补排序