package com.mtf.demo.controller;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class BufferWriteTest{
public static void main(String[] args) throws Exception{
String oldFile="E:\\A\\old.txt";
String newFile="E:\\A\\new.txt";
String writeFile="E:\\A\\differ.txt";
File file=new File(writeFile);
if(!file.exists()){
file.createNewFile();
}
//读取旧文件
BufferedReader oldRead=new BufferedReader(new FileReader(oldFile));
//读取新文件
BufferedReader newRead=new BufferedReader(new FileReader(newFile));
//对比新旧文件
String[] oldbyte=new String[1024];
String[] newbyte=new String[1024];
String oldString=null;
String newString=null;
int num=0;
int sum=0;
while((oldString=oldRead.readLine())!=null){
oldbyte[num]=oldString;
num++;
}
while((newString=newRead.readLine())!=null){
newbyte[sum]=newString;
sum++;
}
//遍历数组对比
BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(writeFile));
int finnum=num>=sum?sum:num;
for(int i=0;i<finnum;i++){
String a=oldbyte[i];
String b=newbyte[i];
if(!a.equals(b)){
bufferedWriter.write("原来:"+a);
bufferedWriter.newLine();
bufferedWriter.write("现在:"+b);
bufferedWriter.newLine();
}
}
//读取多余的行数
if(finnum==sum){//old多
int a=num-sum;
for(int i=0;i<a;i++){
bufferedWriter.write("新增:"+oldbyte[sum+i]);
bufferedWriter.newLine();
}
}
if(finnum==num){//new多
int a=sum-num;
for(int i=0;i<a;i++){
bufferedWriter.write("新增:"+newbyte[num+i]);
bufferedWriter.newLine();
}
}
bufferedWriter.close();
oldRead.close();
newRead.close();
}
}
比较两个文件有什么不一样
最新推荐文章于 2024-07-02 19:04:39 发布