栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java BufferedReader+FileReader+BufferedWriter+FileWriter 的简单应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java BufferedReader+FileReader+BufferedWriter+FileWriter 的简单应用

应用场景
某小区某单元业主针对是否更换老旧电梯进行投票表决,该单元共17层,每层6户,每户编号依次为 A,B,C,D,E,F。

在微信中通过接龙的方式投票,现将微信中的投票结果复现到文本文件 YY.txt 中,并做简单处理后备用。

为了统计投票情况,写了个简单的Java代码,可对输入文件 YY.txt 进行处理,结果输出到文件 OUT.txt 中

代码如下 YY.java
输入:YY.txt
输出:OUT.txt

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;

public class YY {
	public static void main(String[] args) {
		int[][] LIFT = new int[17][6];
		for(int i = 0; i < LIFT.length; i++) {
			for(int j = 0; j < LIFT[i].length; j++) {
				LIFT[i][j] = 0;
			}
		}
		
		try {
			BufferedReader reader;
			reader = new BufferedReader(new FileReader("YY.txt"));
			
			BufferedWriter writer;
			writer = new BufferedWriter(new FileWriter("OUT.txt"));
			
			String line = reader.readLine();
			while (line != null) {
				System.out.println(line);
				if (line != null && !line.equals("")) {
					String[] arr = line.split(" ");
				//	for (int i = 0; i < arr.length; i++) {
				//		System.out.println(arr[i]);
				//	}
					for(int k = 0; k < 17; k++) {
						int floor = Integer.parseInt(arr[0].substring(0, arr[0].length() - 1));
						floor -= 1;
					//	if (arr[0].startsWith(String.valueOf(k))) {
						if (floor == k) {
						//	System.out.println("----->" + arr[0]);
						//	System.out.println("----->" + floor);
							
						//	String X = arr[0].substring(arr[0].length()-1);
							char X = arr[0].toUpperCase().charAt(arr[0].length() -1);
							if( X >= 'A' && X <= 'F') {
								System.out.println("----->" + floor + ", " + X + ", " + (X - 'A'));
								LIFT[floor][X - 'A'] = 1;
							}
						}
					}
				}
				// read next line
				line = reader.readLine();
			}
			reader.close();
			
			writer.write("    A, B, C, D, E, F");
			writer.newLine();
			int cnt = 1;
			for (int[] lift : LIFT){
				String s = String.format("%2d ", cnt) + Arrays.toString(lift);
				System.out.println(s);
				writer.write(s);
				writer.newLine();
				cnt++;
			}
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

通过命令行编译和运行Java的方式就不赘述了,我是在Win10上的Ubuntu子系统运行的。

k112358@PC:/mnt/d/code/JAVA$ javac.exe YY.java
k112358@PC:/mnt/d/code/JAVA$ java.exe YY

这里附上一个其他人写的文章链接:
https://blog.csdn.net/weixin_42717928/article/details/94463686

输入说明
如下 YY.txt 文件第一行 15D A,表示15楼D户投票选择 A 品牌电梯
代码处理时不关注电梯品牌,只统计哪一户投票了,因为投票户数要达到60%以上才有效。
也就是说代码只处理每一行文本的第一段字符串(如第一行只关注15D),需要将楼层和户型解析出来。

15D A
9F  R
6B  A
4A  R
2E  TKE
9a  R
3E  R
4b  R
11D R
10A R
5F  R
12B R
9B  R
14F R1
7B  R
3A  R
8b  R
13F R
16  R
6D  R
6A  A
17c R
11B R
7D  R
7F  R
4e  A
7C  A
13F A
3f  R
7E  A
10D R
17E R
15C R
7A  R
14B R
14E R
14D R
5E  R
8A  R
9D  R
10E R
10C R
14c R
4D  R
8D  R
8E  R
9c  R
8F  R
2B  R
7E  R
16F R
13A R
17D R
14A R
5A  R
9E  R
2D  R
17B R
17A R
3B  R
5B  R
16E R
9E  R

输出说明
代码运行完成后会将结果写入到 OUT.txt 文件中
OUT.txt文件内容如下所示,1表示已投票,0表示未投票
用 Notepad++打开,双击选中0,所有0都会高亮,即可直观看到哪一层哪一户未投票
方便物业管家上门一个一个询问

    A, B, C, D, E, F
 1 [0, 0, 0, 0, 0, 0]
 2 [0, 1, 0, 1, 1, 0]
 3 [1, 1, 0, 0, 1, 1]
 4 [1, 1, 0, 1, 1, 0]
 5 [1, 1, 0, 0, 1, 1]
 6 [1, 1, 0, 1, 0, 0]
 7 [1, 1, 1, 1, 1, 1]
 8 [1, 1, 0, 1, 1, 1]
 9 [1, 1, 1, 1, 1, 1]
10 [1, 0, 1, 1, 1, 0]
11 [0, 1, 0, 1, 0, 0]
12 [0, 1, 0, 0, 0, 0]
13 [1, 0, 0, 0, 0, 1]
14 [1, 1, 1, 1, 1, 1]
15 [0, 0, 1, 1, 0, 0]
16 [0, 0, 0, 0, 1, 1]
17 [1, 1, 1, 1, 1, 0]

YY.java 是一个典型的 BufferedReader FileReader BufferedWriter FileWriter 应用,其中有二维数组,并涉及字符串处理。
写在这里也算是给自己做个笔记。

最后贴一下代码运行时输出的打印

k112358@PC:/mnt/d/code/JAVA$ ls
YY.java  YY.txt
k112358@PC:/mnt/d/code/JAVA$ javac.exe YY.java
k112358@PC:/mnt/d/code/JAVA$ ls
YY.class  YY.java  YY.txt
k112358@PC:/mnt/d/code/JAVA$ java.exe YY
15D A
----->14, D, 3
9F  R
----->8, F, 5
6B  A
----->5, B, 1
4A  R
----->3, A, 0
2E  TKE
----->1, E, 4
9a  R
----->8, A, 0
3E  R
----->2, E, 4
4b  R
----->3, B, 1
11D R
----->10, D, 3
10A R
----->9, A, 0
5F  R
----->4, F, 5
12B R
----->11, B, 1
9B  R
----->8, B, 1
14F R1
----->13, F, 5
7B  R
----->6, B, 1
3A  R
----->2, A, 0
8b  R
----->7, B, 1
13F R
----->12, F, 5
16  R
6D  R
----->5, D, 3
6A  A
----->5, A, 0
17c R
----->16, C, 2
11B R
----->10, B, 1
7D  R
----->6, D, 3
7F  R
----->6, F, 5
4e  A
----->3, E, 4
7C  A
----->6, C, 2
13F A
----->12, F, 5
3f  R
----->2, F, 5
7E  A
----->6, E, 4
10D R
----->9, D, 3
17E R
----->16, E, 4
15C R
----->14, C, 2
7A  R
----->6, A, 0
14B R
----->13, B, 1
14E R
----->13, E, 4
14D R
----->13, D, 3
5E  R
----->4, E, 4
8A  R
----->7, A, 0
9D  R
----->8, D, 3
10E R
----->9, E, 4
10C R
----->9, C, 2
14c R
----->13, C, 2
4D  R
----->3, D, 3
8D  R
----->7, D, 3
8E  R
----->7, E, 4
9c  R
----->8, C, 2
8F  R
----->7, F, 5
2B  R
----->1, B, 1
7E  R
----->6, E, 4
16F R
----->15, F, 5
13A R
----->12, A, 0
17D R
----->16, D, 3
14A R
----->13, A, 0
5A  R
----->4, A, 0
9E  R
----->8, E, 4
2D  R
----->1, D, 3
17B R
----->16, B, 1
17A R
----->16, A, 0
3B  R
----->2, B, 1
5B  R
----->4, B, 1
16E R
----->15, E, 4
9E  R
----->8, E, 4
 1 [0, 0, 0, 0, 0, 0]
 2 [0, 1, 0, 1, 1, 0]
 3 [1, 1, 0, 0, 1, 1]
 4 [1, 1, 0, 1, 1, 0]
 5 [1, 1, 0, 0, 1, 1]
 6 [1, 1, 0, 1, 0, 0]
 7 [1, 1, 1, 1, 1, 1]
 8 [1, 1, 0, 1, 1, 1]
 9 [1, 1, 1, 1, 1, 1]
10 [1, 0, 1, 1, 1, 0]
11 [0, 1, 0, 1, 0, 0]
12 [0, 1, 0, 0, 0, 0]
13 [1, 0, 0, 0, 0, 1]
14 [1, 1, 1, 1, 1, 1]
15 [0, 0, 1, 1, 0, 0]
16 [0, 0, 0, 0, 1, 1]
17 [1, 1, 1, 1, 1, 0]

----你翻到最后了----

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991811.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号