java实现点名,并记录被点次数

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Scanner; public class Demoe1 {
public static void main(String[] args)throws Exception {
File f=new File("src/t7/names.txt");
//用于存放读取进来的学生姓名
ArrayList<String> nameList=new
ArrayList<String>();
//定义用于读取文件的输入流
Scanner cin=new Scanner(new
FileInputStream(f));
cin.useDelimiter("\n");
//读取学生姓名到集合中
while(cin.hasNext()){
nameList.add(cin.next());
}
cin.close();//关闭输入流
f.delete();//删除原有的文本文件
//用于存储处理后的学生姓名
ArrayList<String> resultList=new
ArrayList<String>();
for(String s:nameList){
//用于去掉回车换行
s=s.substring(0,s.length()-1);
//把处理后的学生姓名加来新的容器中
resultList.add(s+"\t"+0);
}
//定义文件输出流
PrintStream ps=new
PrintStream(new
FileOutputStream(f));
//把处理之后的学生姓名写到文本文件中
for(String s:resultList)
ps.println(s);
ps.close();//关闭输出流
}
}

学生姓名和时间

public class Student {
private String name;
private int time; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getTime() {
return time;
} public void setTime(int time) {
this.time = time;
} }
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner; public class RollCall {
public static void main(String[] args) throws Exception {
File f = new File("src/t8/names.txt");
Scanner cin = new Scanner(new FileInputStream(f));
cin.useDelimiter("\n");
// 用于存储学生姓名和被点次数
ArrayList<Student> sList = new ArrayList<Student>();
while (cin.hasNext()) {
String s = cin.next();
// 用空格把学生姓名和次数他隔开
String[] ss = s.split("\\s+");// 正则
Student stu = new Student();
stu.setName(ss[0]);
// 把字符串类型的次数转换成int类型的次数
// 并存入Student类的对象中
stu.setTime(Integer.parseInt(ss[1]));
sList.add(stu);
}
cin.close();
f.delete();
// 产生随机下标
Random r = new Random();
// 下标的上界为数组的长度
int i = r.nextInt(sList.size());
Student student = sList.get(i);
System.out.println(student.getName());
// 被点过名的学生,点名次数加1
sList.get(i).setTime(student.getTime() + 1);
writeStudent(f,sList);
} public static void writeStudent(File f, ArrayList<Student> sList)throws Exception {
// 建立文件输出流
PrintStream ps = new PrintStream(new FileOutputStream(f));
for (Student s : sList) {
// 把学生姓名和被点次数拼成字符串
String st = s.getName() + "\t" + s.getTime();
// 把学生信息输出到文本文件中
ps.println(st);
}
ps.close();
}
}

java实现点名,并记录被点次数的更多相关文章

  1. Java学习-007-Log4J 日志记录配置文件详解及实例源代码

    此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...

  2. JAVA 中LinkedHashMap要点记录

    JAVA 中LinkedHashMap要点记录 构造函数中可能出现的几个参数说明如下: 1.initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16 2.loadFactor ...

  3. Java NIO学习与记录(八): Reactor两种多线程模型的实现

    Reactor两种多线程模型的实现 注:本篇文章例子基于上一篇进行:Java NIO学习与记录(七): Reactor单线程模型的实现 紧接着上篇Reactor单线程模型的例子来,假设Handler的 ...

  4. Java给各个方法记录执行时间

    Java给各个方法记录执行时间 long startTime = System.currentTimeMillis();...//要测试时间的方法LoggerFactory.getLogger(Bas ...

  5. 使用window.localStorage,window.localStorage记录点击次数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Java web--Filter过滤器分IP统计访问次数

    分IP统计访问次数即网站统计每个IP地址访问本网站的次数. 分析 因为一个网站可能有多个页面,无论哪个页面被访问,都要统计访问次数,所以使用过滤器最为方便. 因为需要分IP统计,所以可以在过滤器中创建 ...

  7. 关于Java Microbenchmark的一点记录

    大家知道单元测试对代码质量的保障作用已经没什么可说的了.Microbenchmark(微基准测试)也是保证代码质量的重要手段,也是容易忽略的,它用来衡量一些小的代码片段的性能指标,完善的Microbe ...

  8. 利用jdk中工具完成Java程序监控方法记录

    转载加自己整理的部分内容,转载自:http://jiajun.iteye.com/blog/810150 记录下JConsole使用方法 一.JConsole是什么    从Java 5开始 引入了 ...

  9. java中的List记录是否完全匹配方法

    今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊. 先看一下项目结构图: User类是一个VO类,主要逻辑还是在MapTestBak上面. 运行效果: 原理图: 1.在st ...

随机推荐

  1. WebSphere配置数据库连接池

    通过WebSphere配置数据库连接池一共需要三项:     1.配置连接驱动,在这里叫:JDBC提供程序;    2.配置数据库连接池,在这里叫:配置数据源;  3.配置数据库登录帐号,密码,在这里 ...

  2. Some good iOS questions

    这里,我列举了一些在Stackoverflow中一些比较好的关于iOS的问题.大部分我列举的问题都是关于Objective C.所有问题中,我比较喜欢“为什么”这一类型的问题. 问题 1. What’ ...

  3. EF中加载实体的方式

    EF中的查询执行时机:1. foreach进行枚举2. ToArray.ToList.ToDictionary3. Linq的一些操作,如First.Any4. DbSet上的Load操作.DbEnt ...

  4. .NET 笔试分享

    最近一直在面试,每次面试前也不怎么准备,虽说碰到的题大部分都很简单的,但是在现场答题的时候由于自己紧张脑子就空了,一些题答的不是很好,所以只有每次回来的时候才能好好想想怎么答: 题大部分还是挺简单的, ...

  5. 关于java WEB下载

    web.xml配置mapping  页面直接配置路径就可下载 <mime-mapping>  <extension>doc</extension>  <mim ...

  6. redis使用Java学习

    一.连接到redis服务 import redis.clients.jedis.Jedis; public class RedisJava { public static void main(Stri ...

  7. 数据库分库分表(sharding)系列(一)拆分实施策略和示例演示

    本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sh ...

  8. HTML5画布(矩形)

    canvas元素用于绘制图形. canvas元素是HTML5中新增的一个重要元素,元素本身是没有绘图能力,所有的绘制工作必须在javascript内部完成. 案例1: <!DOCTYPE htm ...

  9. Python核心编程(第七章)--映像和集合类型

    字典:它是一个容器类型,能存储任意个数的Python对象,也包括其他容器类型,Python的字典是作为可变的哈希表实现的 映像类型中的数据是无序排列的   可以用工厂方法dict()来创建字典,也可以 ...

  10. iOS学习之详解AppDelegate

    AppDelegate, 类似于监听接口. 用个很简单的例子说:ios系统会控制每个程序的开始和结束.但是ios又不知道每个程序的开始需要运行成么代码,结束需要运行什么代码.这个时候,ios就制定了一 ...