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
小例子:
实践的具体代码实现:
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();
}
}
}
输出结果:
附件:
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文件中相关教程