黑马程序员技术交流社区
标题:
利用IO流做的“随机点名器”
[打印本页]
作者:
小丑
时间:
2015-7-9 15:59
标题:
利用IO流做的“随机点名器”
<span style="line-height: 2.2em;">package me.zhouyou.io;</span>
复制代码
然而并没有什么用。。纯属发上来得点币。。{:3_64:}
names.zip
(594 Bytes, 下载次数: 240)
2015-7-9 15:58 上传
点击文件名下载附件
作者:
小丑
时间:
2015-7-9 16:00
package me.zhouyou.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class GetRandomName {
private static BufferedReader br = null;
private static ArrayList<String> al = null;
private static Scanner sc = new Scanner(System.in);
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) throws IOException {
System.out.println("********** 欢迎来到随机点名器~ **********");
// 封装数据源
br = new BufferedReader(new FileReader("names.txt"));
// 将名字添加到集合
al = new ArrayList<String>();
String line = null;
while ((line = br.readLine()) != null) {
al.add(line);
}
while (true) {
System.out.println();
System.out.println("******* 请输入数字选择 *******");
System.out.println("* 1,随机点名 ");
System.out.println("* 2,添加名字 ");
System.out.println("* 3,删除名字 ");
System.out.println("* 4,名字列表 ");
System.out.println("* 5,关闭 ");
// 获取用户输入
int number = sc.nextInt();
switch (number) {
case 1:
// 获取随机名
getRandomName();
break;
case 2:
// 添加名字
getName();
break;
case 3:
// 删除名字
printArraylist();
removeAL();
break;
case 4:
// 输出集合
printArraylist();
break;
case 5:
// 关闭
br.close();
sc.close();
scanner.close();
System.exit(0);
break;
default:
System.out.println("输入有误,请输入(1-5)内的数字,如: 1 ");
break;
}
}
}
// 点名方法
public static void getRandomName() throws IOException {
// 获取随机数
Random r = new Random();
int index = r.nextInt(al.size());
System.out.println("随机点名为:" + al.get(index));
}
// 添加名字
private static void getName() throws IOException {
System.out.println("请输入一个要添加的名字:");
String name = scanner.nextLine();
if (al.contains(name)) {
System.out.println(name + ",已经存在!");
} else {
al.add(name);
System.out.println(name + ",成功添加!");
// 将集合中的数据重新写入到文件中
BufferedWriter bw = new BufferedWriter(new FileWriter("names.txt"));
for (String s : al) {
bw.write(s);
bw.newLine();
bw.flush();
}
bw.close();
}
}
// 删除方法
private static void removeAL() throws IOException {
System.out.println("请输入需要删除名字的编号:");
int index = sc.nextInt();
if (index > 0 && index < al.size()) {
System.out.println(al.get(index)+",成功删除!");
al.remove(index);
// 将集合中的数据重新写入到文件中
BufferedWriter bw = new BufferedWriter(new FileWriter("names.txt"));
for (String s : al) {
bw.write(s);
bw.newLine();
bw.flush();
}
bw.close();
} else {
System.out.println("输入有误:输入的编号没有对应的名字");
}
}
// 遍历集合
private static void printArraylist() {
System.out.println("共有如下名字:");
for (int x = 1; x < al.size(); x++) {
System.out.println(x + ":" + "\t" + al.get(x));
}
}
}
复制代码
作者:
bingo54
时间:
2015-7-9 16:14
币没有,我是来消灭零回复的!哈哈
作者:
小丑
时间:
2015-7-10 10:46
bingo54 发表于 2015-7-9 16:14
币没有,我是来消灭零回复的!哈哈
感谢。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2