把ArrayList集合中的学生数据写入到文本文件

该博客展示了如何使用Java进行ArrayList集合操作,创建Student对象并存储学生信息。接着,通过BufferedWriter和FileWriter将学生数据写入到stus.txt文件中,每个学生信息占据一行。博客涵盖了ArrayList、文件读写和字符串拼接的基本知识点。
摘要由CSDN通过智能技术生成
    public static void main(String[] args) throws IOException {
        // 创建 ArrayList集合
        ArrayList<Student> stus = new ArrayList<>();
        stus.add(new Student("ID001","张三",30,"北京"));
        stus.add(new Student("ID002","李四",31,"上海"));
        stus.add(new Student("ID003","王五",32,"深圳"));


        // 创建缓冲输出流
        BufferedWriter bw = new BufferedWriter(new FileWriter("day12_javaOOP_io_buffer&print&properties\\stus.txt"));

        // 写数据
        // 遍历集合
        for (Student stu : stus) {
            // 创建sb对象,拼接ID001,张三,30,北京格式
            StringBuilder sb = new StringBuilder();
            sb.append(stu.getSid()).append(",").append(stu.getName()).append(",").append(stu.getAge()).append(",").append(stu.getAddress());
            bw.write(sb.toString());
            bw.newLine(); // 一个学生信息独占一行
            // bw.close();
        }

        bw.close();

    }

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 如果你想在磁盘创建一个文本文件写入指定的内容,可以使用 Java 的 FileOutputStream 和 OutputStreamWriter 类。 首先,你需要创建一个 FileOutputStream 对象,指定文件路径和文件名。 然后,你可以使用 OutputStreamWriter 对象来包装 FileOutputStream 对象,并使用 OutputStreamWriter 的 write() 方法来写入字符串。 最后,你需要调用 OutputStreamWriter 的 close() 方法来关闭输出流。 下面是一个示例代码: ``` import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class WriteToFile { public static void main(String[] args) { try { // 创建 FileOutputStream 对象 FileOutputStream fos = new FileOutputStream("c:/test/test.txt"); // 创建 OutputStreamWriter 对象 OutputStreamWriter osw = new OutputStreamWriter(fos); // 写入字符串 osw.write("这是要写入的字符串"); // 关闭输出流 osw.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 如果你想通过 Java 的 IO 流读取文本文件的每一行数据,可以使用 BufferedReader 类。 首先,你需要创建一个 FileReader 对象,指定文件路径和文件名。 然后,你可以使用 BufferedReader 对象来包装 FileReader 对象,并使用 BufferedReader 的 readLine() 方法来读取文件的每一行数据。 最后,你需要调用 BufferedReader 的 close() 方法来关闭输入流。 下面是一个示例代 ### 回答2: 在磁盘创建一个文本文件,可以使用FileWriter类或者BufferedWriter类来实现。使用FileWriter类的基本步骤如下: 1. 创建一个FileWriter对象,指定要创建的文件路径和文件名。 ```java FileWriter fw = new FileWriter("C:\\test\\student.txt"); ``` 2. 使用write()方法将要写入的内容写入到文件。 ```java fw.write("张三,男,18\n"); fw.write("李四,女,20\n"); fw.write("王五,男,19\n"); ``` 3. 关闭文件流。 ```java fw.close(); ``` 通过Java的IO流读取每一行的数据,可以使用BufferedReader类。其基本步骤如下: 1. 创建一个BufferedReader对象,指定要读取的文件路径和文件名。 ```java BufferedReader br = new BufferedReader(new FileReader("C:\\test\\student.txt")); ``` 2. 使用readLine()方法读取文件的一行内容。 ```java String line; while ((line = br.readLine()) != null) { // 对读取的每一行数据进行解析 } ``` 3. 关闭文件流。 ```java br.close(); ``` 将每一行的数据解析后存储到一个学生对象Student,可以通过split()方法将一行数据按照指定的分隔符进行拆分,然后将拆分后的数据存储到Student对象。 ```java String[] data = line.split(","); String name = data[0]; String gender = data[1]; int age = Integer.parseInt(data[2]); Student student = new Student(name, gender, age); ``` 最后,将所有数据存入List集合,可以使用ArrayList类。 ```java List<Student> studentList = new ArrayList<>(); studentList.add(student); ``` 完整代码如下: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { try { // 创建一个文本文件写入数据 FileWriter fw = new FileWriter("C:\\test\\student.txt"); fw.write("张三,男,18\n"); fw.write("李四,女,20\n"); fw.write("王五,男,19\n"); fw.close(); // 读取数据并解析存入List集合 BufferedReader br = new BufferedReader(new FileReader("C:\\test\\student.txt")); String line; List<Student> studentList = new ArrayList<>(); while ((line = br.readLine()) != null) { String[] data = line.split(","); String name = data[0]; String gender = data[1]; int age = Integer.parseInt(data[2]); Student student = new Student(name, gender, age); studentList.add(student); } br.close(); // 输出存储的学生对象 for (Student student : studentList) { System.out.println(student); } } catch (IOException e) { e.printStackTrace(); } } } class Student { private String name; private String gender; private int age; public Student(String name, String gender, int age) { this.name = name; this.gender = gender; this.age = age; } @Override public String toString() { return "Name: " + name + " Gender: " + gender + " Age: " + age; } } ``` ### 回答3: 解决这个问题的步骤如下: 1. 首先,我们需要在磁盘创建一个文本文件。可以使用Java的File类来完成这个任务。例如,我们可以通过以下代码创建一个名为"student.txt"的文本文件: ``` File file = new File("student.txt"); if(!file.exists()){ file.createNewFile(); } ``` 2. 接下来,要向文件写入内容。可以使用Java的IO流的FileWriter和BufferedWriter类来实现。以下代码演示了如何向文件写入内容: ``` FileWriter fileWriter = new FileWriter(file); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write("张三,18,男"); bufferedWriter.newLine(); bufferedWriter.write("李四,19,女"); bufferedWriter.newLine(); bufferedWriter.write("王五,20,男"); bufferedWriter.close(); fileWriter.close(); ``` 3. 然后,我们可以使用Java的IO流的FileReader和BufferedReader类来读取文件的每一行数据。以下代码演示了如何读取文件的每一行数据并解析每一行的数据,并将结果存储在一个学生对象Student: ``` ArrayList<Student> studentList = new ArrayList<>(); FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); String line; while((line = bufferedReader.readLine()) != null){ String[] data = line.split(","); String name = data[0]; int age = Integer.parseInt(data[1]); String gender = data[2]; Student student = new Student(name, age, gender); studentList.add(student); } bufferedReader.close(); fileReader.close(); ``` 4. 最后,我们将存储学生对象的List集合studentList返回,以供后续使用。 以上就是使用Java的IO流读取文本文件每一行数据,并将数据解析后存储到学生对象Student,最后存入List集合的方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值