此处以log0.txt和log1.txt合并为log.txt为例。
//创建一个文件数组来存放源文件
File[] orfiles = new File[2];
orfiles[0] = new File(property+"\\log0.txt");//property为文件路径
orfiles[1] = new File(property+"\\log1.txt");
//创建输出流
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(new File(property+"\\log.txt")));
byte[] buffer = new byte[1024];
//因为我这块是俩个日志文件,输出日志的时候是轮询着输出。一个日志大小超过6M之后自动输出到另一个日志文件。
//比较俩个文件的大小。决定合并时输出的前后顺序。小的是最新日志。
//比较大小,决定前后位置
if(log0.length()>log1.length()) {
//log1为最新日志。此处可以用for循环实现。为了方便我此处未使用。
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(orfiles[0]));
int readcount;
while ((readcount = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, readcount);
}
inputStream.close();
BufferedInputStream inputStream1 = new BufferedInputStream(new FileInputStream(orfiles[1]));
int readcount1;
while ((readcount1 = inputStream1.read(buffer)) > 0) {
outputStream.write(buffer, 0, readcount1);
}
inputStream1.close();
outputStream.close();
}else {
//log0为最新日志
BufferedInputStream inputStream1 = new BufferedInputStream(new FileInputStream(orfiles[1]));
int readcount1;
while ((readcount1 = inputStream1.read(buffer)) > 0) {
outputStream.write(buffer, 0, readcount1);
}
inputStream1.close();
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(orfiles[0]));
int readcount;
while ((readcount = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, readcount);
}
inputStream.close();
outputStream.close();
}