JavaSE-18.3.3【案例-集合到文件(改进版)、文件到集合(改进版)】

2021/6/7 12:21:11

本文主要是介绍JavaSE-18.3.3【案例-集合到文件(改进版)、文件到集合(改进版)】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 1 package day9.lesson3;
 2 
 3 import java.io.BufferedWriter;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.util.ArrayList;
 7 
 8 /*
 9 3.4 案例-集合到文件(改进版)
10 
11     把ArrayList集合中的学生数据写入到文本文件。要求:每一个学生对象的数据作为文件中的一行数据
12     格式:学号,姓名,年龄,居住地
13     举例:itheima001,林青霞,30,西安
14 
15     定义学生类
16     创建ArrayList集合
17     创建学生对象
18     把学生对象添加到集合中
19     创建字符缓冲输出流对象
20     遍历集合,得到每一个学生对象
21     把学生对象的数据拼接成指定格式的字符串
22     调用字符缓冲输出流对象的方法写数据
23     释放资源
24  */
25 public class ArrayListToTxtDemo2 {
26     public static void main(String[] args) throws IOException {
27         ArrayList<Student> arrayList = new ArrayList<>();
28 
29         Student s1 = new Student(1,"张三", 20, "南京");
30         Student s2 = new Student(2,"李四", 23, "杭州");
31         Student s3 = new Student(3,"王五", 21, "武汉");
32 
33         arrayList.add(s1);
34         arrayList.add(s2);
35         arrayList.add(s3);
36 
37         BufferedWriter bw = new BufferedWriter(new FileWriter("stage2\\src\\day9\\lesson3\\students.txt"));
38 
39         for (Student stu: arrayList){
40             /*bw.write(stu.getSid() + "," + stu.getName() + "," + stu.getAge() + "," + stu.getAddress());
41             bw.newLine();
42             bw.flush();*/
43 
44             StringBuilder sb = new StringBuilder();
45             sb.append(stu.getSid()).append(",").append(stu.getName()).append(",").append(stu.getAge()).append(",").append(stu.getAddress());
46             bw.write(sb.toString());
47             bw.newLine();
48             bw.flush();
49         }
50 
51         bw.close();
52     }
53 }
 1 package day9.lesson3;
 2 
 3 public class Student {
 4 
 5     private int sid;
 6     private String name;
 7     private int age;
 8     private String address;
 9 
10     public Student() {
11     }
12 
13     public Student(int sid, String name, int age, String address) {
14         this.sid = sid;
15         this.name = name;
16         this.age = age;
17         this.address = address;
18     }
19 
20     public void setSid(int sid) {
21         this.sid = sid;
22     }
23 
24     public void setName(String name) {
25         this.name = name;
26     }
27 
28     public void setAge(int age) {
29         this.age = age;
30     }
31 
32     public void setAddress(String address) {
33         this.address = address;
34     }
35 
36     public int getSid() {
37         return sid;
38     }
39 
40     public String getName() {
41         return name;
42     }
43 
44     public int getAge() {
45         return age;
46     }
47 
48     public String getAddress() {
49         return address;
50     }
51 }
 1 package day9.lesson3;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.FileReader;
 5 import java.io.IOException;
 6 import java.util.ArrayList;
 7 
 8 /*
 9 3.5 案例-文件到集合(改进版)
10 
11     把文本文件中的数据读取到集合中,并遍历集合。
12     要求:文件中每一行数据是一个学生对象的成员变量值
13     举例:itheima001,林青霞,30,西安
14 
15     定义学生类
16     创建字符缓冲输入流对象
17     创建ArrayList集合对象
18     调用字符缓冲输入流对象的方法读数据
19     把读取到的字符串数据用split()进行分割,得到一个字符串数组
20     创建学生对象
21     把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值
22     把学生对象添加到集合
23     释放资源
24     遍历集合
25  */
26 public class TxtToArrayListDemo2 {
27     public static void main(String[] args) throws IOException {
28         BufferedReader br = new BufferedReader(new FileReader("stage2\\src\\day9\\lesson3\\students.txt"));
29 
30         ArrayList<Student> arrayList = new ArrayList<>();
31 
32         String line;
33         while ((line=br.readLine()) != null){
34             String[] strArr = line.split(",");
35             Student student = new Student();
36 
37             student.setSid(Integer.parseInt(strArr[0])); //str转int
38             student.setName(strArr[1]);
39             student.setAge(Integer.parseInt(strArr[2]));
40             student.setAddress(strArr[3]);
41 
42             arrayList.add(student);
43         }
44 
45         br.close();
46 
47         for (Student s: arrayList){
48             System.out.println(s.getSid() + "," + s.getName() + "," + s.getAge() + "," + s.getAddress());
49         }
50     }
51 }

 



这篇关于JavaSE-18.3.3【案例-集合到文件(改进版)、文件到集合(改进版)】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程