• Java 字符流案例_集合与文件内容的相互转化(升级版)


    (一)集合到文件改进版demo


        .把ArrayList集合中的学生数据写入到一个文本文件,
    要求:
        .每一个学生对象的数据作为文件中的一行数据
            格式:
                .学号,姓名,年龄,居住地,
            举例:
                .itheima001,林青霞,30,西安
    思路:
        1.定义学生类
        2.创建ArrayList集合
        3.创建学生对象
        4.把学生对象添加到集合之中
        5.创建字符缓冲输出对象
        6.遍历集合,得到每一个学生的对象
        7.把学生对象的数据拼接成指定格式的字符串
        8.调用字符缓冲输出流对象的方法写数据
        9.释放资源

    以下有两个类

    1.集合到文件改进版demo类

    2.student类需求:


    1.集合到文件改进版demo类

    1. package 集合到文件改进版;
    2. import java.io.BufferedWriter;
    3. import java.io.FileWriter;
    4. import java.io.IOException;
    5. import java.util.ArrayList;
    6. public class 集合到文件改进版demo {
    7. /*
    8. 需求:
    9. .把ArrayList集合中的学生数据写入到一个文本文件,
    10. 要求:
    11. .每一个学生对象的数据作为文件中的一行数据
    12. 格式:
    13. .学号,姓名,年龄,居住地,
    14. 举例:
    15. .itheima001,林青霞,30,西安
    16. 思路:
    17. 1.定义学生类
    18. 2.创建ArrayList集合
    19. 3.创建学生对象
    20. 4.把学生对象添加到集合之中
    21. 5.创建字符缓冲输出对象
    22. 6.遍历集合,得到每一个学生的对象
    23. 7.把学生对象的数据拼接成指定格式的字符串
    24. 8.调用字符缓冲输出流对象的方法写数据
    25. 9.释放资源
    26. *
    27. */
    28. public static void main(String[] args) throws IOException {
    29. // TODO Auto-generated method stub
    30. // 2.创建ArrayList集合
    31. ArrayList<student> array= new ArrayList<student>();
    32. student s1 = new student("110","林青霞",20,"香港");
    33. student s2 = new student("111","叶问",56,"佛山");
    34. student s3= new student("112","无春秋",23,"阿萨德");
    35. student s4 = new student("110","胡可",16,"澳门");
    36. // 4.把学生对象添加到集合之中
    37. array.add(s1);
    38. array.add(s2);
    39. array.add(s3);
    40. array.add(s4);
    41. // 5.创建字符缓冲输出流对象(输出文件对象)
    42. BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\javaceshi\\student.txt"));
    43. // 6.遍历集合,得到每一个学生的对象
    44. for (student student : array) {
    45. // 7.把学生对象的数据拼接成指定格式的字符串
    46. StringBuilder sb = new StringBuilder();
    47. sb.append(student.getsid()).append(",").append(student.getName()).append((",")).append(student.getAge()).append((",")).append(student.getAddress());
    48. // 8.调用字符缓冲输出流对象的方法写数据
    49. bw.write(sb.toString());
    50. bw.newLine();
    51. bw.flush();
    52. }
    53. // 9.释放资源
    54. bw.close();
    55. }
    56. }

     2.student类需求:

    1. package 集合到文件改进版;
    2. /*
    3. 格式:
    4. .学号,姓名,年龄,居住地,
    5. */
    6. public class student {
    7. private String sid;
    8. private String name;
    9. private int age;
    10. private String address;
    11. public student(String sid, String name, int age, String address) {
    12. super();
    13. this.sid = sid;
    14. this.name = name;
    15. this.age = age;
    16. this.address = address;
    17. }
    18. public student() {
    19. super();
    20. }
    21. public String getsid() {
    22. return sid;
    23. }
    24. public void setsid(String sid) {
    25. this.sid= sid;
    26. }
    27. public String getName() {
    28. return name;
    29. }
    30. public void setName(String name) {
    31. this.name = name;
    32. }
    33. public int getAge() {
    34. return age;
    35. }
    36. public void setAge(int age) {
    37. this.age = age;
    38. }
    39. public String getAddress() {
    40. return address;
    41. }
    42. public void setAddress(String address) {
    43. this.address = address;
    44. }
    45. }

    (二)文件到集合改进版demo

        需求:
            .把我文本文件的数据读取到集合之中,并遍历集合,
        要求:
            .文件中的每一行数据是一个对象的成员变量值
                格式:
                    .学号,姓名,年龄,居住地,
                举例:
                    .itheima001,林青霞,30,西安
        思路:
            1.定义学生类
            2.创建字符缓冲输出对象
            3.创建ArrayList集合
            4.调用字符缓冲输入流对象的方法读取数据
            5.把读取的数据用spilt进行分割,得到一个字符串数组
            6.创建学生对象
            7.把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值
            8.把学生对象添加到集合
            9.释放资源
            10.遍历集合

    以下有两个类

    1.集合到文件改进版demo类

    2.student类需求:


     1.集合到文件改进版demo类

    1. package 文件到集合改进版;
    2. import java.io.BufferedReader;
    3. import java.io.BufferedWriter;
    4. import java.io.FileReader;
    5. import java.io.FileWriter;
    6. import java.io.IOException;
    7. import java.util.ArrayList;
    8. import 集合到文件改进版.student;
    9. public class 文件到集合改进版 {
    10. /*
    11. 需求:
    12. .把我文本文件的数据读取到集合之中,并遍历集合,
    13. 要求:
    14. .文件中的每一行数据是一个对象的成员变量值
    15. 格式:
    16. .学号,姓名,年龄,居住地,
    17. 举例:
    18. .itheima001,林青霞,30,西安
    19. 思路:
    20. 1.定义学生类
    21. 2.创建字符缓冲输出对象
    22. 3.创建ArrayList集合
    23. 4.调用字符缓冲输入流对象的方法读取数据
    24. 5.把读取的数据用spilt进行分割,得到一个字符串数组
    25. 6.创建学生对象
    26. 7.把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值
    27. 8.把学生对象添加到集合
    28. 9.释放资源
    29. 10.遍历集合
    30. *
    31. */
    32. public static void main(String[] args)throws IOException {
    33. // TODO Auto-generated method stub
    34. // 2.创建字符缓冲输入流对象(输入文件对象)
    35. BufferedReader br = new BufferedReader(new FileReader("D:\\javaceshi\\student.txt"));
    36. // 3.创建ArrayList集合
    37. ArrayList<student> array= new ArrayList<student>();
    38. // 4.调用字符缓冲输入流对象的方法读取数据
    39. String line;
    40. while((line=br.readLine())!=null) { //读取一行数据
    41. String[] strarray = line.split(",");
    42. // 6.创建学生对象
    43. student s = new student();
    44. // 7.把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值
    45. s.setsid(strarray[0]);
    46. s.setName(strarray[1]);
    47. s.setAge(Integer.parseInt(strarray[2]));
    48. s.setAddress(strarray[3]);
    49. // 8.把学生对象添加到集合
    50. array.add(s);
    51. }
    52. // 9.释放资源
    53. br.close();
    54. // 10.遍历集合
    55. for (student s : array) {
    56. System.out.println(s.getsid()+","+s.getName()+","+s.getAge()+","+s.getAddress());
    57. }
    58. }
    59. }

    2.student类需求:

    1. package 文件到集合改进版;
    2. public class student {
    3. /*
    4. 格式:
    5. .学号,姓名,年龄,居住地,
    6. */
    7. private String sid;
    8. private String name;
    9. private int age;
    10. private String address;
    11. public student(String sid, String name, int age, String address) {
    12. super();
    13. this.sid = sid;
    14. this.name = name;
    15. this.age = age;
    16. this.address = address;
    17. }
    18. public student() {
    19. super();
    20. }
    21. public String getsid() {
    22. return sid;
    23. }
    24. public void setsid(String sid) {
    25. this.sid= sid;
    26. }
    27. public String getName() {
    28. return name;
    29. }
    30. public void setName(String name) {
    31. this.name = name;
    32. }
    33. public int getAge() {
    34. return age;
    35. }
    36. public void setAge(int age) {
    37. this.age = age;
    38. }
    39. public String getAddress() {
    40. return address;
    41. }
    42. public void setAddress(String address) {
    43. this.address = address;
    44. }
    45. @Override
    46. public String toString() {
    47. return "student [sid=" + sid + ", name=" + name + ", age=" + age + ", address=" + address + "]";
    48. }
    49. }

     

  • 相关阅读:
    Spring之bean的生命周期
    两个json字符串可以直接用equals比较是否相等吗
    R语言ggplot2包绘制网络地图
    【软件测试】APP 上架指南:iOS App Store 首次上架被拒原因分析与解决方案
    计算机毕业设计Java“花园街道”社区医院服务系统(源码+系统+mysql数据库+lw文档)
    helm3 快速部署 Harbor 镜像仓库
    前端规范——前端代码提交篇(2)
    点云从入门到精通技术详解100篇-双目鱼眼系统的畸变校正及目标重建
    QT5 配置nPcap过程
    LNK2001 __GSHandlerCheck【error】
  • 原文地址:https://blog.csdn.net/qq_51272114/article/details/125635556