package it_06;
import java.io.*;
import java.util.ArrayList;
/*
需求:把文本文件中的数据读取到集合中,并遍历集合。要求:文件中每一行数据是一个学生对象的成员变量值
思路:
1、定义学生类
2、创建字符缓冲输入流对象
3、创建ArrayList集合对象
4、调用字符缓冲输入流对象的方法读取数据
5、把读取到的字符串数据用split()进行分割,得到一个字符串数组
6、创建学生对象
7、把字符串数组中的每一个元素取出来对应的赋值给学生对象的成员变量值
8、把学生对象添加到集合
9、释放资源
10、遍历集合
*/
public class FileToArrayListDemo {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("myCharStream\\students.txt"));
ArrayList<Student> array = new ArrayList<Student>();
String line;
while((line = br.readLine()) != null){
String[] strArray = line.split(",");
//split对字符串以给定的字符进行分隔,得到字符串数组。
//split有两种定义方法。
//一种是split(String regex)regex是要分隔的字符。
//另一种是split(String regex,int limit)
//regex是要分隔的字符,limit是要限制分隔后的数量。
Student s = new Student();
s.setSid(strArray[0]);
s.setName(strArray[1]);
s.setAge(Integer.parseInt(strArray[2]));
//java中Integer.parseInt和Integer.valueOf 的区别
// parseInt()返回的是基本类型int
// valueOf()返回的是包装类Integer
// Integer是可以使用对象方法的
// 而int类型就不能和Object类型进行互相转换 。
s.setAddress(strArray[3]);
array.add(s);
}
br.close();
for (Student s : array) {
System.out.println(s.getSid() + "," + s.getName() + "," + s.getAge() + "," + s.getAddress());
}
}
}