Java 按关键字删除文件中的行
直接上代码。
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class DeleteLineFromBigFile {
public static void main(String[] args) {
File inFile = new File("Y:\\YQY\\S2S\\workspace\\test\\src\\test\\input.sql");
File outFile = new File("Y:\\YQY\\S2S\\workspace\\test\\src\\test\\output.sql");
BufferedReader br = null;
String readedLine;
BufferedWriter bw = null;
try {
FileWriter fw = new FileWriter(outFile);
bw = new BufferedWriter(fw);
if (!outFile.exists()) {
outFile.createNewFile();
}
br = new BufferedReader(new FileReader(inFile));
int idx = 0;
while ((readedLine = br.readLine()) != null) {
if (readedLine.contains("2016-")) {
continue;
}
bw.write(readedLine + "\n");
if (idx++ == 100) {
bw.flush();
idx = 0;
}
}
bw.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (bw != null) {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
搜索642M(压缩后15M)的文件,用了5秒左右,可以接受。
本文介绍了一种使用Java实现的方法,能够根据关键字从大型文件中删除特定行。该方法通过读取源文件并检查每一行是否包含指定的关键字来决定是否保留该行,最后将保留的行写入新的输出文件。此程序对642MB大小的文件处理仅需5秒,效率较高。
403

被折叠的 条评论
为什么被折叠?



