利用Java怎么对比两个文本文件的相同与不同之处

  介绍

本篇文章给大家分享的是有关利用Java怎么对比两个文本文件的相同与不同之处,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>使用需求:

文件1里面是需要比较的内容,文件2是被比较的文本,现在需要找到在文件1中每一行的文本在文件2中是否存在并相等,如果相等,就在一份结果文件中输出,文件1的哪一行与文件2的哪一行相同,反之不相同就输出文件1的哪一行不相同货不存在。

Java代码如下,输出的是结果。txt文件,这个文件的行号和文件1保持一致,所以结果中某一行的结果就是对应的文件1中这行数据在文件2中比较之后的结果。

(需要注意文件1和文件2是通过每一行的内容进行比较)

最后为了方便查看可以通过notepad++查看:

包com.it.aron;
  进口java.io.BufferedReader;
  进口java.io.BufferedWriter;
  进口java.io.File;
  进口java.io.FileNotFoundException;
  进口java.io.FileReader;
  进口java.io.FileWriter;
  进口java.io.IOException;/* *
  *检查重复的文本
  * @author: aronxu
  * @version: 1.0, 2015年9月22日
  */公开课AutoCheckText {
  私有静态最终字符串FILE_PATH=癉:/text1.txt";
  私有静态最终字符串COMPARED_FILE_PATH=癉:/text2.txt";
  私有静态最终字符串RESULT_FILE_PATH=癉:/result.txt";
  公共静态void main (String [] args) {
  System.out.println(“======开始搜索!=======?;
  长时间的开始时间=System.currentTimeMillis ();//读取第一个文件
  文件文件=新文件(FILE_PATH);
  文件comparedFile=新文件(COMPARED_FILE_PATH);
  BufferedReader br=零;
  BufferedReader cbr=零;
  BufferedWriter rbw=零;
  尝试{
  br=new BufferedReader(新FileReader(文件);
  cbr=new BufferedReader(新FileReader (comparedFile));
  cbr.mark (90000000);
  rbw=new BufferedWriter(新FileWriter (RESULT_FILE_PATH));
  字符串lineText=零;
  在((lineText=br.readLine ()) !=null) {
  字符串searchText=lineText.trim ();
  searchAndSignProcess (searchText、cbr、rbw);
  }
  长endTime=System.currentTimeMillis ();
  System.out.println(“======过程!=======?;
  System.out.println(“时间支出:“;+ ((endTime -开始时间)/1000 d) +“s");
  }捕捉(FileNotFoundException e) {
  e.printStackTrace ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  最后}{
  如果(br !=null) {
  尝试{
  br.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  最后}{
  如果(cbr !=零,,rbw !=null) {
  尝试{
  cbr.close ();
  rbw.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  }
  }
  }
  }
  公共静态孔隙searchAndSignProcess(字符串searchText BufferedReader comparedReader, BufferedWriter rbw)
  抛出IOException {
  字符串lineStr=? \ n";
  如果(searchText==null) {
  返回;
  }
  如果““.equals (searchText)) {
  rbw.write (lineStr);
  返回;
  }
  字符串lineText=零;
  int lineNum=1;
  在((lineText=comparedReader.readLine ()) !=null) {
  字符串comparedLine=lineText.trim ();
  如果(searchText.equals (comparedLine)) {
  lineStr=? # #==:“+ lineNum +“=# # # \ n";
  打破;
  }
  lineNum + +;
  }
  rbw.write (lineStr);
  comparedReader.reset ();
  }
  }

text1。三种内容:

myaccount.msg.register。注册=Registro角色   myaccount.msg.register.your_company=,神游;你是empresa& # 63;   myaccount.msg.register。sign_up=可aqui   myaccount.msg.register。儿子obligatorios fields_compellent=跳动坎波斯   myaccount.msg.register.account_data=https://www.yisu.com/zixun/Datos de la东西   myaccount.msg.register.email=电子邮件:      myaccount.msg.register。confirm_email=Confirma你电子邮件:   myaccount.msg.register.password=Contrase馻:   myaccount.msg.register。confirm_password=Confirma涂Contrase馻:   myaccount.msg.register。personal_data=拿督个人   myaccount.msg.register.first_name=数量:      myaccount.msg.register。last_name=Apellido帕特诺:   myaccount.msg.register。middle_name=Apellido Materno:   myaccount.msg.register。国家=禿e Residencia:   myaccount.msg.register。id_card=de Identidad证件:      myaccount.msg.register.genero=Genero:   myaccount.msg.register.male=Masculino:   myaccount.msg.register.female=Femenino:   myaccount.msg.register。出生=Fecha de Nacimiento:   myaccount.msg.register.day=Dia   myaccount.msg.register.month=Mes

利用Java怎么对比两个文本文件的相同与不同之处