如何用java将5个以上的txt文件合并到一个文件中



我想在一个txt文件中保存多个txt文件,并删除以前的文件。我可以用什么方法?我自己写的代码:

public static void mergeFile() throws IOException {
long unixTime = System.currentTimeMillis() / 1000L;
final String sysName = String.valueOf(unixTime);
File directory = new File("src/");
FileWriter myWriter = new FileWriter("src/"+sysName+".txt",true);
File[] files = directory.listFiles();
for(File file : files) {
FileInputStream fis = new FileInputStream(file);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine;
String fileName = file.toString();
int split = fileName.indexOf(".");
long fName = Long.parseLong(fileName.substring(5, split)) ;
if (fName < unixTime) {
while ((aLine = in.readLine()) != null) {
myWriter.write(aLine);
myWriter.write("n");
}
in.close();
file.delete();
}
}
}

我按照如下方式重写了上面的代码,它工作正常。

public static void mergeFile() throws IOException {
long unixTime = System.currentTimeMillis() / 1000L;
final String sysName = String.valueOf(unixTime);
File directory = new File("src/raw/");
File[] files = directory.listFiles();
FileWriter myWriter = new FileWriter("src/ok/"+sysName+".txt");
for(File file : files) {
String aLine;
String fileName = file.toString();
int split  = fileName.indexOf(".");
long fName = Long.parseLong(fileName.substring(15, split)) ;
if (fName <= unixTime) {
FileInputStream fis = new FileInputStream(file);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
while ((aLine = in.readLine()) != null) {
myWriter.write(aLine);
myWriter.write("n");
}
in.close();
}
Files.move(Paths.get("src/raw/"+fName+".txt"),
Paths.get("src/old/"+fName+".txt"));
}
myWriter.close();
Query.insertSyslog("src/ok/"+sysName+".txt");
}

最新更新