需求:把ArrayList集合中的字符串数据写入到文本文件。要求:每一个字符串元素作为文件中的一行数据
思路:
代码:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class Demo1 { public static void main(String[] args) throws IOException { // 创建ArrayList集合 ArrayList<String> arrayList = new ArrayList<>(); // 往集合中存储字符串元素 arrayList.add("hello"); arrayList.add("world"); arrayList.add("java"); // 创建字符缓冲输出流对象 BufferedWriter bw = new BufferedWriter(new FileWriter("java基础\\src\\train\\io\\java.txt")); // 遍历集合,得到每一个字符串数据 for (String s : arrayList){ // 调用字符缓冲输出流对象的方法写数据 bw.write(s); // 换行 bw.newLine(); } // 释放资源 bw.close(); } }
需求:把文本文件中的数据读取到集合中,并遍历集合。要求:文件中每一行数据是一个集合元素
思路:
代码:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class Demo2 { public static void main(String[] args) throws IOException { // 创建字符缓冲输入流对象 BufferedReader br = new BufferedReader(new FileReader("java基础\\src\\train\\io\\java.txt")); // 创建ArrayList集合对象 ArrayList<String> arrayList = new ArrayList<>(); // 调用字符缓冲输入流对象的方法读数据 String line; while ((line = br.readLine()) != null){ // 把读取到的字符串数据存储到集合中 arrayList.add(line); } // 释放资源 br.close(); // 遍历集合 for (String s : arrayList){ System.out.println(s); } } }
需求:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; public class Demo3 { public static void main(String[] args) throws IOException { // 创建一个ArrayList ArrayList<String> arrayList = new ArrayList<>(); // 创建一个缓冲输入流对象 BufferedReader br = new BufferedReader(new FileReader("java基础\\src\\train\\io\\names.txt")); // 读数据 String line; while ((line = br.readLine()) != null){ // 将数据写入ArrayList arrayList.add(line); } // 关闭资源 br.close(); // 利用Collections中的shuffle()随机打乱ArrayList Collections.shuffle(arrayList); // 遍历ArrayList for (String s : arrayList){ System.out.println(s); } } }
思路:
代码:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class Demo1_2 { public static void main(String[] args) throws IOException { // 创建ArrayList集合 ArrayList<Student> arrayList = new ArrayList<>(); // 创建Student类对象 Student s1 = new Student("001", "小红", "12"); Student s2 = new Student("002", "小眀", "12"); Student s3 = new Student("003", "小兰", "13"); // 把学生对象添加到集合中 arrayList.add(s1); arrayList.add(s2); arrayList.add(s3); // 创建字符缓冲输出流对象 BufferedWriter bw = new BufferedWriter(new FileWriter("java基础\\src\\train\\io\\Student.txt")); // 遍历集合,得到每一个学生对象 for (Student student : arrayList) { // 把学生对象的数据拼接成指定格式的字符串 String uid = student.getUid(); String name = student.getName(); String age = student.getAge(); String s = uid + "," + name + "," + age; // 调用字符缓冲输出流对象的方法写数据 bw.write(s); // 换行 bw.newLine(); } // 释放资源 bw.close(); } }
思路:
代码:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class Demo2_2 { public static void main(String[] args) throws IOException { // 创建字符缓冲输入流对象 BufferedReader br = new BufferedReader(new FileReader("java基础\\src\\train\\io\\Student.txt")); // 创建ArrayList集合对象 ArrayList<Student> students = new ArrayList<>(); // 调用字符缓冲输入流对象的方法读数据 String line; while ((line = br.readLine()) != null) { // 把读取到的字符串数据用split(进行分割,得到一个字符串数组) String[] s = line.split(","); // 创建学生对象 // 把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值 // 把学生对象添加到集合 students.add(new Student(s[0],s[1],s[2])); } // 释放资源 br.close(); // 遍历集合 for (Student student : students){ // 需要重写toString() System.out.println(student); } } }