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. SQL Server常用脚本

    一.迁移登录用户脚本: select 'create login [' + p.name + '] ' + case when p.type in('U','G') then 'from window ...

  2. 如何让网页打开就运行JS代码,不用onclick

    打开网页直接运行是要调用window.onload( )函数: <html>    <head>    </head>    <body>    < ...

  3. EF加载实体的方式

    原文:Loading Related Entities EF加载数据的方式: 预加载 eager loading 延迟加载 lazy loading 显示加载 explicit loading 预先加 ...

  4. C# XML,XmlDocument简单操作实例

    private static string _Store = LocalPathHelper.CurrentSolutionPath + "/data/bookstore.xml" ...

  5. (转)[老老实实学WCF] 第二篇 配置WCF

    第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...

  6. [C#][Database]C#通过ODBC以自定义端口连接数据库

    数据库端的配置暂且不说,比较简单,新建用户并开启相应连接权限即可. 通过ODBC连接数据库,重点在于Connection String的书写,在此可以查到几乎所有类型的Data Server的Conn ...

  7. oracle登录错误(ORA-01033:ORACLE initialization or shutdown in progress

    在网上查找出现这种错误的原因一般是因为删除数据库 安装文件下的某个文件造 成的, 但是在我们的服务器上是因为 机子重启(意外断电)了一下就造 成这样的错误,不过解决办法是一样的,下面贴上解决方案 解决 ...

  8. 全世界最详细的图形化VMware中linux环境下oracle安装(三)【weber出品必属精品】

    数据库软件和数据库都建好了,基本上可以说完成90%的工作,但是美中不足的就是企业管理器还没有安装好,现在我们就开始安装企业管理器吧. 安装之前我们先将补丁给补上.补丁我们也是采用禁默安装.补丁:p83 ...

  9. 去空格 whitespaceAndNewlineCharacterSet

    http://blog.csdn.net/worn_nest/article/details/10155495

  10. html5新特性--音频视频,拖放

    1.音频 <audio controls> <source src="aaa.ogg" type="audio/ogg"> <so ...