java+txt+词语+次数_Java练习2--读取txt文件统计考勤次数并写入一个txt文件中

通过Java程序读取学生出勤记录,统计每位学生的出勤次数,并将结果写入新文件。程序考虑了不同出勤状态的计数方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java练习2--读取txt文件统计考勤次数并写入一个txt文件中

Java练习2--读取txt文件统计考勤次数并写入一个txt文件中

面向对象的小练习:

文件attendance.txt中的数据为本学期面向对象程序设计课程学生出勤记录。其中,每一行数据对应一个学生;1表示出勤,2表示请假。

请使用Java语言编写程序,计算每一位学生本学期的出勤总次数;其中请假计0.5次;

计算结果写入文件attendance_count.txt中,一位学生出勤数占一行。

知识点小结:

FileReader:FileReader类从InputStreamReader类继承而来。该类按字符读取流中数据。

FileWriter 类从 OutputStreamWriter 类继承而来。该类按字符向流中写入数据

将 FileReader 读到 BufferedReader 缓冲区,同理,将FileWriter 放到 BufferedWriter

小例子:

1fba0265c8e1a864424a1ab103f49aa1.png

实践的具体代码实现:

import java.io.*;

/**

* 按照pdf的方法进行了一些改进,使用字符串字符的替换(换行符和空格不标准),增强了程序的健壮性

* =尽量采用最简单的方式=

* @author QingBang.Wang

*/

public class attendence {

public static void main(String[] args) {

try {

//读操作

FileReader fileReader = new FileReader("D:\\idea\\workspace\\src\\main\\resources\\attendance.txt");

//将文件放到缓存区

BufferedReader br = new BufferedReader(fileReader);

//写操作

FileWriter fileWriter = new FileWriter("attendance_count.txt");

//将需要写的放入缓存

BufferedWriter bw = new BufferedWriter(fileWriter);

//按行读取

String line = "";

int i = 0;

while ((line = br.readLine()) != null) {

double times = 0;

for (int j = 0; j < line.length(); j++) {

if (line.charAt(j) == '1') {

times++;

} else if (line.charAt(j) == '2') {

times += 0.5;

}

}

//写入文件

bw.write(times + "\n");

bw.flush();

i++;

System.out.println("第" + i + "个学生的签到统计次数为:" + times);

}

//关闭流

br.close();

fileReader.close();

bw.close();

fileWriter.close();

System.out.println("输出文件已成功生成!");

} catch (Exception e) {

e.printStackTrace();

}

}

}

输出结果:

5b33675713d0db4b5c0829b1cd43e0bb.png

附件:

attendance.txt 的数据:

1

1 1 111111111

1111111111111

1111111111111

1111111111111

1111111111111

1111111111111

111111111111

1111111111111

111111111111

111111111111

1111111111111

111111111111

2111111111111

1111111111121

111111111112

1111111111111

1111111111111

1111111111111

1111111111111

111111211111

1111111111111

1111111211111

1111111111111

1111111111111

1111111111111

111111111111

1111111111121

111112111111

1111111111111

111111111111

1111111111111

1111111111111

1111111111111

1111111111111

1111111111111

1111111111111

1111111111111

11111111111

1111111111111

1111111111111

1111111111111

1111111211111

1111111111111

111111111111

111111111111

1111111111111

1111111111111

1111111111111

1111111111111

1111111111111

1111111111111

Java练习2--读取txt文件统计考勤次数并写入一个txt文件中相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值