305 (案例)点名器
【需求】
有一个文件,里面是学生姓名,每个姓名占一行。用代码实现随机点名器。
【思路】
(准备)(一个文件,里面是学生姓名,每个姓名占一行。)
- 创建 字符 缓冲 输入流 对象
- 创建 AL集合 对象
- 调用输入流 方法 读数据
- 添加 字符串数据 到 集合
- 释放资源
- 使用Random产生随机数,随机数的范围为0-size,size是集合的元素数
- 以随机数为索引获取集合元素
- 写屏
--------------------------------------------------------------
package e305;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Prepare {
public static void main(String[] args) throws IOException {
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myCharStream\\src\\e305\\NameList.txt"));
osw.write("MOLE\nRAT\nOTTER\nBADGER\nTOAD");
osw.close();
}
}
--------------------------------------------------------------
(NameList.txt)
MOLE
RAT
OTTER
BADGER
TOAD
--------------------------------------------------------------
package e305;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
public class RollCallDemo {
public static void main(String[] args) throws IOException {
BufferedReader br305 = new BufferedReader(new FileReader("myCharStream\\src\\e305\\NameList.txt"));
ArrayList<String> al305 = new ArrayList<>();
String line;
while ((line = br305.readLine()) != null) {
al305.add(line);
}
br305.close();
Random r = new Random();
int index = r.nextInt(al305.size());
String theName = al305.get(index);
System.out.println("are you there?\t" + theName);
}
}
/*
are you there? BADGER
*/