java 21 - 10 文本文件和集合之间互相存储数据
有时候,我们会遇到单独写入数据到文本文件的情况。比如:
需求:把ArrayList集合中的字符串数据存储到文本文件
分析:
A:ArrayList集合中存储的是String类
B:要存储的文件是文本文件,所以用字符流,为了快速,用缓冲字符流A
数据源:
ArrayList<String> ----- 遍历集合,得到数据
目的地:
c.txt ------ FileWriter ------ BufferedWriter
1 public static void main(String[] args) throws IOException { 2 // 封装数据(创建集合对象) 3 ArrayList<String> arry = new ArrayList(); 4 //添加数据 5 arry.add("我"); 6 arry.add("要"); 7 arry.add("睡觉。。"); 8 9 //封装目的地 10 BufferedWriter bw = new BufferedWriter(new FileWriter("c.txt")); 11 String line = null; 12 int len = 0; 13 //遍历数组,写入数据到目的地 14 for(String s : arry){ 15 bw.write(s); 16 bw.newLine(); 17 bw.flush(); 18 } 19 bw.close(); 20 21 }
同样,有时候我们需要从文本文件中提取里面的数据,并存储到集合中:
需求:从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合
分析:
A:从文本文件中读取数据,则用缓冲字符输入流 BufferReader
B:因为为了快速,使用的是每一行为一个字符串数据的读取方式,所以集合类型为String类的
数据源:
copy.txt -- FileReader -- BufferedReader
目的地:
ArrayList<String>
1 public static void main(String[] args) throws IOException { 2 // 封装数据源 3 BufferedReader br = new BufferedReader(new FileReader("copy.txt")); 4 // 封装目的地(创建集合) 5 ArrayList<String> arry = new ArrayList(); 6 //从数据源中读取数据,并把数据写入集合中 7 String line = null; 8 while((line = br.readLine()) != null){ 9 arry.add(line); 10 } 11 br.close(); 12 13 //遍历数组 14 for(String s : arry){ 15 System.out.println(s); 16 } 17 18 }
何事都只需坚持..
难?
维熟尔。
LZL的自学历程...只需坚持