当前位置 博文首页 > zhouyu的博客:IO流案例

    zhouyu的博客:IO流案例

    作者:[db:作者] 时间:2021-09-07 22:23

    1.集合到文件:

    1)创建ArrayList集合
    2)往集合中存储字符串元素
    3)创建字符缓冲输出流对象
    4)遍历集合,得到每一个字符串数据
    5)调用字符缓冲输出流对象的方法写数据
    6)释放资源
    
    package Characters;
    
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    
    public class ArrayListToTxt {
        public static void main(String[] args) throws IOException {
            ArrayList<String> list = new ArrayList<>();
    
            list.add("hello");
            list.add("world");
            list.add("while");
    
            BufferedWriter writer = new BufferedWriter(new FileWriter("src\\Characters\\array.txt"));
    
            for(String s : list){
                writer.write(s);
                writer.newLine();
                writer.flush();
            }
            writer.close();
    
        }
    }
    
    

    2.文件到集合:

    1)创建字符缓冲输入流对象
    2)创建ArrayList集合对象
    3)调用字符缓冲输入流对象的方法读数据
    4)把读取到的字符串数据存储到集合中
    5)释放资源
    6)遍历集合
    
    package Characters;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    
    public class TxtToArrayList {
        public static void main(String[] args) throws IOException {
            BufferedReader reader = new BufferedReader(new FileReader("src\\Characters\\array.txt"));
            ArrayList<String> list = new ArrayList<>();
    
            String line;
            while((line = reader.readLine()) != null){
                list.add(line);
            }
            reader.close();
    
            for(String s : list){
                System.out.println(s);
            }
        }
    }
    
    

    3.点名器:

    需求:文件里存储了班级同学的姓名,每个姓名占一行,要求通过程序实现随机点名器
    1)创建字符缓冲输入流对象
    2)创建ArrayList集合对象
    3)调用字符缓冲输入流对象的方法读数据
    4)把读取到的字符串数据存储到集合中
    5)释放资源
    6)使用Random产生一个随机数,随机数的范围在:[0,集合长度)
    7)把第6步产生的随机数作为索引到ArrayList集合中获取值
    8)输出第7步得到的值
    
    package Characters;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Random;
    
    public class CallName {
        public static void main(String[] args) throws IOException {
            BufferedReader reader = new BufferedReader(new FileReader("src\\Characters\\names.txt"));
            ArrayList<String> list = new ArrayList<>();
    
            String line;
            while((line = reader.readLine()) != null){
                list.add(line);
            }
    
            reader.close();
    
            int index;
            index = new Random().nextInt(list.size());
    
            String name = list.get(index);
    
            System.out.println(name);
        }
    }
    
    

    4.集合到文件(改进版)

    需求:把ArrayList集合中的书生数据写入到文本文件。要求:每个学生对象的数据作为文件中的一行数据
    1)定义学生类
    2)创建ArrayList集合
    3)创建学生对象
    4)把学生对象添加到集合中
    5)创建字符缓冲输出流对象
    6)遍历集合,得到每一个学生对象
    7)把学生对象的数据拼接成指定格式的字符串
    8)调用字符缓冲输出流对象的方法写数据
    9)释放资源
    

    学生类1:

    package Characters;
    
    public class Student1 {
        private String sid;
        private String name;
        private int age;
        private String address;
    
        public Student1() {
        }
    
        public Student1(String sid, String name, int age, String address) {
            this.sid = sid;
            this.name = name;
            this.age = age;
            this.address = address;
        }
    
        public String getSid() {
            return sid;
        }
    
        public void setSid(String sid) {
            this.sid = sid;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }
    
    
    package Characters;
    
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    
    public class ArrayListToFile {
        public static void main(String[] args) throws IOException {
            ArrayList<Student1> list = new ArrayList<>();
    
            Student1 s1 = new Student1("001","张三",28,"西安");
            Student1 s2 = new Student1("002","李四",21,"榆林");
            Student1 s3 = new Student1("003","王五",12,"宝鸡");
            Student1 s4 = new Student1("004","王麻子",45,"银川");
    
            list.add(s1);
            list.add(s2);
            list.add(s3);
            list.add(s4);
    
            BufferedWriter writer = new BufferedWriter(new FileWriter("src\\Characters\\student1"));
    
            for(Student1 st : list){
                StringBuilder sb = new StringBuilder();
                sb.append(st.getSid()).append(",").append(st.getName()).append(",").append(st.getAge()).append(",").append(st.getAddress());
                writer.write(sb.toString());
                writer.newLine();
                writer.flush();
            }
            writer.close();
        }
    }
    
    

    5.文件到集合(改进版)

    需求:把文件中的数据读取到集合中。要求:文件中每一行数据是一个学生对象的成员变量值
    1)定义学生类(同上)
    2)创建字符缓冲输入流对象
    3)创建ArrayList集合对象
    4)调用字符缓冲输入流对象的方法读数据
    5)把读取到的字符串数据用split()进行分割,得到一个字符串数组
    6)创建学生对象
    7)把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值
    8)把学生对象添加到集合
    9)释放资源
    10)遍历集合
    
    
    下一篇:没有了