学了这么久Java编程,头一回特么地用它干了件正事~~

gdx9125 gdx9125 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
学院机房计算机IP地址采取静态IP-MAC绑定,这样做可以方便的管理网络资源,以及局域网内计算机对互联网访问权限的控制。
但是,麻烦的事情在于机房的计算机个数实在不是个小数,我们通过网络嗅探器收集到的MAC地址、IP地址、计算机名等等信息并不是能够直接使用的配置数据。例如:
这是我们收集到的数据样式:

……
B8:AC:6F:4A:93:1E=33G04|192.168.3.70
B8:AC:6F:48:CE:3B=33G05|192.168.3.71
B8:AC:6F:4A:96:D8=33G06|192.168.3.72
……


而我们需要的样式是这样的:
(配置到路由器里获得上网权限)

192.168.3.70 B8:AC:6F:4A:93:1E
192.168.3.71 B8:AC:6F:48:CE:3B
192.168.3.72 B8:AC:6F:4A:96:D8


或者是这样的样式:
(写入到ModiIP的配置文件MAC.ini中,实现自动更改计算机名称、IP地址、子网掩码等信息)

4487FC42F15E=192.168.4.63,34F10
4487FC42E909=192.168.4.64,34F11
4487FC42E711=192.168.4.65,34F12


这就需要我们进行数据样式的更改。如果这些数据仅仅只有几十条我们可以手工一条条更改,但是如果是有上百条的话就有些困难了。我以前曾重新收集过我所负责机房的IP-MAC信息,通过手工更改完后,可以说两只手都快废了。确实是件很痛苦的事情。
不过想想自己学习编程也有一段时间了,于是就尝试着用Java代码解决这些数据格式的问题。还好,学了这么久编程,今天头一回特么地用它干了件正事。

系统源代码:
package org.woniu;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class ChangeModel {

public static void main(String[] args) throws Exception {
File file1 = new File("f:" + File.separator + "mac.txt");// 待读取数据源文件
File file2 = new File("f:" + File.separator + "ip.txt");// 待写入的数据文件
FileReader fr = new FileReader(file1);
FileWriter fw = new FileWriter(file2);
BufferedReader in = new BufferedReader(fr);
BufferedWriter out = new BufferedWriter(fw);
String str;
int m = 0;// 数据计数器
while ((str = in.readLine()) != null) {
// 对字符串进行截取,并存入数组
String[] s = str.split("=");
String[] s1 = s[1].split("\\|");
// 将数组内的值写入文件
out.write(s1[1] + " ");
out.write(s[0]);
out.newLine();
out.flush();
// 控制台同步打印数据
System.out.print(s1[1] + " ");
System.out.println(s[0]);
m++;
}
System.out.println("系统一共处理的数据行数是:" + m);
fr.close();
in.close();
fw.close();
out.close();
}
}

今天贴出来,目的是能够得到大家更好的建议。我知道,这只是最基本的Java代码,而且我一定会继续努力的,我非常喜欢Java,我会好好学习的。谢谢批评指正~~
...全文

相关推荐

评论 76
收藏 已收藏
分享
返回顶部
gdx9125
Java SE 62,620 成员 307,251 内容