一、将ArrayList集合中的字符串写入到文本文件
需求:
把ArrayList集合中的字符串数据写入到文本文件中,要求:每一个字符串元素作为文件中的一行数据、
分析:
1、创建ArrayList集合
2、往集合中存储字符串元素
3、创建字符缓冲输出流对象
4、遍历集合、得到每一个字符串元素
5、调用字符缓冲输出流对象的方法 写数据
6、释放资源
/* * 1、创建ArrayList集合
2、往集合中存储字符串元素
3、创建字符缓冲输出流对象
4、遍历集合、得到每一个字符串元素
5、调用字符缓冲输出流对象的方法 写数据
6、释放资源
* */
public class Demo01 {
public static void main(String[] args) throws IOException {
//创建ArrayList集合
ArrayList<String> al = new ArrayList<String>();
//存储字符串元素
al.add("张三");
al.add("李四");
//创建字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("E:\\abc.txt"));
//调用写入方法
for (String s : al) {
//写入数据
bw.write(s);
//添加换行
bw.newLine();
//刷新
bw.flush();
}
//释放资源
bw.close();
}
}
改进版
需求:把ArrayList集合中的学生对象数据写入到文本文件中,要求:每一个学生对象的数据作为文件的一行数据
格式:学号,姓名,年龄,居住地
分析:
1、创建学生类(构造方法、成员变量、get\set方法)
2、创建ArrayList集合
3、创建学生对象
4、把学生对象添加到集合
5、创建字符缓冲输出流
6、遍历集合得到每一个学生对象
7、将学生对象拼接成指定格式的字符串
8、调用字符缓冲输出流的方法写入数据
9、释放资源
/*1、创建学生类(构造方法、成员变量、get\set方法)
2、创建ArrayList集合
3、创建学生对象
4、把学生对象添加到集合
5、创建字符缓冲输出流
6、遍历集合得到每一个学生对象
7、将学生对象拼接成指定格式的字符串
8、调用字符缓冲输出流的方法写入数据
9、释放资源
* */
public class StudentDemo {
public static void main(String[] args) throws IOException {
//创建ArrayList集合
ArrayList<Student> al = new ArrayList<Student>();
//把学生对象添加到集合
al.add(new Student("001", "张三", 18, "浙江宁波"));
al.add(new Student("002", "张四", 17, "浙江绍兴"));
al.add(new Student("003", "张五", 19, "浙江舟山"));
//创建字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("E:\\abcd.txt"));
//遍历集合得到每一个学生对象
for (Student s : al) {
//拼接字符串
StringBuffer sb = new StringBuffer();
StringBuffer rs = sb.append(s.getCode()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress()).append("\r\n");
//调用字符缓冲输出流的方法写入数据
bw.write(new String(rs));
bw.flush();
}
//释放资源
bw.close();
}
}
二、读取文件中的数据到集合
需求:把文本文件中的数据读取到集合中,并遍历集合。要求:文件中的每一行数据是一个集合元素
分析:
1、创建字符缓冲输入流read
2、创建ArrayList集合
3、调用字符缓冲输入流方法读取数据
4、将读取到的数据存储到集合中
5、释放资源
6、遍历集合并输出
/*
* 1、创建字符缓冲输入流read
2、创建ArrayList集合
3、调用字符缓冲输入流方法读取数据
4、将读取到的数据存储到集合中
5、释放资源
6、遍历集合并输出
*/
public class Demo02 {
public static void main(String[] args) throws IOException {
//创建字符缓冲输入流read
BufferedReader br=new BufferedReader(new FileReader("E:\\abc.txt"));
//创建ArrayList集合
ArrayList<String>al=new ArrayList<String>();
//调用字符缓冲输入流方法读取数据
String s;
while ((s=br.readLine())!=null){
//将读取到的数据存储到集合中
al.add(s);
}
//释放资源
br.close();
//遍历集合并输出
for (String ss:al){
System.out.println(ss);
}
}
}
改进版
需求:把文本文件中的数据读取到集合中,并遍历集合。要求:文件中的每一行数据是一个学生对象的成员变量值
分析:
1、创建字符缓冲输入流read
2、创建ArrayList集合
3、调用字符缓冲输入流方法读取数据
4、将读取到的字符串数据用split方法进行分割,得到每一个字符串数组
5、创建学生对象
6、把每字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量
7、把学生对象添加到集合中
package Demo041002;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
/*
* 1、创建字符缓冲输入流read
2、创建ArrayList集合
3、调用字符缓冲输入流方法读取数据
4、将读取到的字符串数据用split方法进行分割,得到每一个字符串数组
5、创建学生对象
6、把每字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量
7、把学生对象添加到集合中*/
public class StudentDemo02 {
public static void main(String[] args) throws IOException {
//创建字符缓冲输入流read
BufferedReader br = new BufferedReader(new FileReader("E:\\abcd.txt"));
//创建ArrayList集合
ArrayList<Student> al = new ArrayList<Student>();
String line;
while ((line = br.readLine()) != null) {
//将读取到的字符串数据用split方法进行分割,得到每一个字符串数组
String[] split = line.split(",");
Student s = new Student();
s.setCode(split[0]);
s.setName(split[1]);
s.setAge(Integer.parseInt(split[2]));
s.setAddress(split[3]);
//把学生对象添加到集合中
al.add(s);
}
//释放资源
br.close();
//遍历集合
for (Student s1 : al) {
System.out.println(s1.getCode() + "," + s1.getName() + "," + s1.getAge() + "," + s1.getAddress());
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!