怎样发贴

Java比较两个文件是否相同_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Java比较两个文件是否相同
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢1153人阅读
使用需求:
文件1里面是需要比较的内容,文件2是被比较的文本,现在需要找到在文件1中每一行的文本在文件2中是否存在并相等,如果相等,就在一份结果文件中输出,文件1的哪一行与文件2的哪一行相同,反之不相同就输出文件1的哪一行不相同货不存在。
Java代码如下,输出的是result.txt文件,这个文件的行号和文件1保持一致,所以result中某一行的结果就是对应的文件1中这行数据在文件2中比较之后的结果。
(需要注意文件1和文件2是通过每一行的内容进行比较)
最后为了方便查看可以通过Notepad++查看:如图:
package com.it.
import java.io.BufferedR
import java.io.BufferedW
import java.io.F
import java.io.FileNotFoundE
import java.io.FileR
import java.io.FileW
import java.io.IOE
* check repetitive text
* @author: aronxu
* @version: 1.0, Sep 22, 2015
public class AutoCheckText {
private static final String FILE_PATH = &D:/text1.txt&;
private static final String COMPARED_FILE_PATH = &D:/text2.txt&;
private static final String RESULT_FILE_PATH = &D:/result.txt&;
public static void main(String[] args) {
System.out.println(&======Start Search!=======&);
long startTime = System.currentTimeMillis();
// Read first file
File file = new File(FILE_PATH);
File comparedFile = new File(COMPARED_FILE_PATH);
BufferedReader br =
BufferedReader cbr =
BufferedWriter rbw =
br = new BufferedReader(new FileReader(file));
cbr = new BufferedReader(new FileReader(comparedFile));
cbr.mark();
rbw = new BufferedWriter(new FileWriter(RESULT_FILE_PATH));
String lineText =
while ((lineText = br.readLine()) != null) {
String searchText = lineText.trim();
searchAndSignProcess(searchText, cbr, rbw);
long endTime = System.currentTimeMillis();
System.out.println(&======Process Over!=======&);
System.out.println(&Time Spending:& + ((endTime - startTime) / 1000D) + &s&);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
br.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (cbr != null && rbw != null) {
cbr.close();
rbw.close();
} catch (IOException e) {
e.printStackTrace();
public static void searchAndSignProcess(String searchText, BufferedReader comparedReader, BufferedWriter rbw)
throws IOException {
String lineStr = &-\n&;
if (searchText == null) {
if (&&.equals(searchText)) {
rbw.write(lineStr);
String lineText =
int lineNum = 1;
while ((lineText = comparedReader.readLine()) != null) {
String comparedLine = lineText.trim();
if (searchText.equals(comparedLine)) {
lineStr = &###=Equal:& + lineNum + &=###\n&;
lineNum++;
rbw.write(lineStr);
comparedReader.reset();
text1.txt内容:
myaccount.msg.register.register=Registro Personas
myaccount.msg.register.your_company=?Eres empresa?
myaccount.msg.register.sign_up=Registrate aquí
myaccount.msg.register.fields_compellent=Todos los campos son obligatorios
myaccount.msg.register.account_data=Datos de la cuenta
myaccount.msg.register.email=E-mail:
myaccount.msg.register.confirm_email=Confirma tu E-mail:
myaccount.msg.register.password=Contrase?a:
myaccount.msg.register.confirm_password=Confirma tu Contrase?a:
myaccount.msg.register.personal_data=Datos personales
myaccount.msg.register.first_name=Nombre:
myaccount.msg.register.last_name=Apellido Paterno:
myaccount.msg.register.middle_name=Apellido Materno:
myaccount.msg.register.country=País de Residencia:
myaccount.msg.register.id_card=Cédula de Identidad:
myaccount.msg.register.genero=Género:
myaccount.msg.register.male=Masculino:
myaccount.msg.register.female=Femenino:
myaccount.msg.register.birth=Fecha de Nacimiento:
myaccount.msg.register.day=Día
myaccount.msg.register.month=Mes
text2.txt内容:
myaccount.msg.register.country=País de Residencia:
myaccount.msg.register.confirm_password=Confirma tu Contrase?a:
myaccount.msg.register.last_name=Apellido Paterno:
myaccount.msg.register.middle_name=Apellido Materno:
myaccount.msg.register.id_card=Cédula de Identidad:
myaccount.msg.register.genero=Género:
myaccount.msg.register.male=Masculino:
myaccount.msg.register.female=Femenino:
myaccount.msg.register.personal_data=Datos personales
myaccount.msg.register.first_name=Nombre:
result.txt内容:
###=Equal:2=###
###=Equal:12=###
###=Equal:13=###
###=Equal:4=###
###=Equal:5=###
###=Equal:1=###
###=Equal:7=###
###=Equal:9=###
###=Equal:10=###
###=Equal:11=###
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2120次
排名:千里之外JAVA语言比较两个文件夹中文件,将不同得文件下传.应该如何比较判断呢
(100分求解,绝对结贴)如果我希望比较服务器和客户端两个文件夹内的文件,将服务器有而客户端没有的文件下传至客户端文件夹内,使两个文件夹内容保持相同一致~
& 如果我打算实现上述功能,大概思路使什么 该调用什么函数么
回答1:这个思路应该比较简单啊,就是一个同步机制嘛。
首先使用java.io.包中的文件访问相关类(File/Directory)获取文件夹和文件列表数据,并自定义一个格式,通过socket传回到客户端(简单的办法可以借用web服务器使用Servlet搞定),然后客户端比较本地文件夹和文件,将要下载的文件列表及全路径传会服务器,循环获得服务器上文件。这里可以将服务器文件时间和大小取得,并和本地文件逐一对比,然后选择覆盖本地文件的方式完成同步。
risechobits
回答2:private int contrastFile(File sourceFile,File targetFile){
log.debug( &进行文件比较,源文件: &+sourceFile+ &目标文件: &+targetFile);
if( sourceFile.isFile()&&targetFile.isFile()
&&sourceFile.getName().equalsIgnoreCase(targetFile.getName())//比文件名
&&sourceFile.length()==targetFile.length()//比长度
&&sourceFile.lastModified()==targetFile.lastModified()){//比修改日期.
比完了根据结果copy文件.
回答3:首先比较文件名,文件名一样的话再比较文件时间,服务器更新的话在覆盖掉客户端文件。

我要回帖

更多关于 贴吧发帖只有自己能看到 的文章

 

随机推荐