📄 file.java
字号:
package crate;
/**
* @(#)file.java
* Copyright 2005 郑州创元计算机网络工程有限公司. All right reserved.
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 类简介:
*
* @author 黄静峰
* @version 1.0 Sep 11, 2006<br>
* 部门:创元网络 软件部 <br>
*/
public class file {
public static void main(String[] args) throws IOException {
System.out.println("开始进行整合指定文件夹下的文件......");
System.out.println("指定的源文件夹路径: " + args[0]);
System.out.println("指定的目标文件(全路径,包括文件名): " + args[1]);
final String separator = "------------------------------------------------------------------------";
File dirs = new File(args[0]);
File[] files = dirs.listFiles();
System.out.println("读取文件列表...... ");
System.out.println("文件总数:" + files.length);
// 构造随机访问文件对象,指定访问目的地文件和访问属性 "rw" - 可读、写
RandomAccessFile rf = new RandomAccessFile(args[1], "rw");
int k = 0;
// 开始循环指定文件夹下所有的文件,以文件名构造新的FileReader对象
for (int i = 0; i < files.length; i++) {
// 读取文件内容
FileReader fr = new FileReader(args[0] + "\\" + files[i].getName());
// 缓冲读取对象
BufferedReader br = new BufferedReader(fr);
// 读取第一行
String Line = br.readLine();
int m = 0;
StringBuffer sb = new StringBuffer();
// 如果有数据则继续循环文件内容(按行)
while (Line != null) {
k++;
if (m == 0) {
if (Line.equalsIgnoreCase(separator)) {
k--;
Line = br.readLine();
m = 1;
continue;
}
} else {
if (Line.equalsIgnoreCase(separator)) {
k--;
// 定位到文件的最后一个字符
rf.seek(rf.length());
// 追加读取的新的一行数据到文件末端,并增加换行
rf
.writeBytes(sb.substring(0, sb.length() - 1)
+ "\r\n");
Line = br.readLine();
sb.setLength(0);
continue;
}
String[] a = Line.trim().split("\\=");
if (a.length == 1) {
sb.append(" ,");
} else {
sb.append(a[1].trim() + ",");
}
Line = br.readLine();
if (Line == null) {
// 定位到文件的最后一个字符
rf.seek(rf.length());
// 追加读取的新的一行数据到文件末端,并增加换行
rf
.writeBytes(sb.substring(0, sb.length() - 1)
+ "\r\n");
sb.setLength(0);
}
}
// 处理超过5000条数据,则通知垃圾回收无用对象(根据实际进行设置)
if (k % 10000 == 0) {
System.out.println("已处理:" + k + " 行数据");
System.gc();
}
}
// 继续按行读取
// 关闭资源
sb = null;
br.close();
fr.close();
System.out.println("处理文件:" + files[i].getName() + " 完毕!");
}
System.out.println("共处理 :" + k + " 行数据");
rf.close();
System.out.println("数据处理完成...... GOOD LUCK!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -