随机点名器案例.
要求:用 高效的字符流一次读写一行.
已知:
项目下有一个names.txt, 里边记录的是学员的名字, 格式如下(一个名字占一行)
张三
李四
王五
赵六
…
将上述所有数据读取出来, 存放到ArrayList集合中, 然后随机从中获取一个名字即可.
import java.io.*;
import java.util.ArrayList;
import java.util.Random;
public class demo03 {
public static void main(String[] args) throws Exception {
//创建输入流, 关联数据源文件.
BufferedReader br=new BufferedReader(new FileReader("day12/data/name.txt"));
//创建一个名为list的集合,用来存储读取后的数据
ArrayList<String> list=new ArrayList<>();
//定义变量, 用来记录读取到的数据(一行数据).
String line;
//4. 循环读取, 只要条件满足, 就一直读, 并将读取到的数据赋值给变量.
while ((line = br.readLine()) != null) {
//5. 将读取到的数据写入到目的地文件中.
list.add(line);
}
//6. 关流, 释放资源.
br.close();
System.out.println("学生名单为:");
//遍历集合
for(String s :list){
System.out.println(s);
}
randomStudent(list);
}
//定义一个产生随机数的方法
public static void randomStudent (ArrayList<String> list) {
//在班级总人数范围内,随机产生一个随机数
int index = new Random().nextInt(list.size());
//在容器(ArrayList集合)中,查找该随机数所对应的同学信息(姓名、年龄)
String s = list.get(index);
System.out.println("被随机点名的同学:"+s);
}
}