如何用java判断两个文件下的txt文件内容一致与否 20
RT如果不一致会在生成的log文件中产生*有人能给出具体的代码吗两文件可能较大不能让内存溢出四楼的方法测试了一下可以但是对于大文件(1.5M的文件)就很卡很卡...
RT
如果不一致
会在生成的log文件中产生*
有人能给出具体的代码吗
两文件可能较大
不能让内存溢出
四楼的方法测试了一下 可以 但是对于大文件(1.5M的文件)就很卡
很卡 展开
如果不一致
会在生成的log文件中产生*
有人能给出具体的代码吗
两文件可能较大
不能让内存溢出
四楼的方法测试了一下 可以 但是对于大文件(1.5M的文件)就很卡
很卡 展开
展开全部
package caihaobin.gicp.net.txt;
import java.io.*;
public class TestIO{
public static void main(String[] args) throws IOException {
String result1 = "";
String result2 = "";
File file = new File("C:\\txt01.txt ");
System.out.println(file.getPath().toString());
FileReader fd = new FileReader(file);
BufferedReader br = new BufferedReader(fd);
String ss = br.readLine();
while(ss!=null){
result1 += ss;
ss = br.readLine();
}
File file1 = new File("C:\\txt02.txt ");
System.out.println(file.getPath().toString());
FileReader ff = new FileReader(file1);
BufferedReader bb = new BufferedReader(ff);
String tt = bb.readLine();
while(tt!=null){
result2 += tt;
tt = bb.readLine();
}
System.out.println(result1);
System.out.println(result2);
if(result1.equals(result2)){
System.out.println("两个txt文件相同");
}
else{
System.out.println("两个txt文件不相同");
}
}
}
先搞个测试版给你看看
import java.io.*;
public class TestIO{
public static void main(String[] args) throws IOException {
String result1 = "";
String result2 = "";
File file = new File("C:\\txt01.txt ");
System.out.println(file.getPath().toString());
FileReader fd = new FileReader(file);
BufferedReader br = new BufferedReader(fd);
String ss = br.readLine();
while(ss!=null){
result1 += ss;
ss = br.readLine();
}
File file1 = new File("C:\\txt02.txt ");
System.out.println(file.getPath().toString());
FileReader ff = new FileReader(file1);
BufferedReader bb = new BufferedReader(ff);
String tt = bb.readLine();
while(tt!=null){
result2 += tt;
tt = bb.readLine();
}
System.out.println(result1);
System.out.println(result2);
if(result1.equals(result2)){
System.out.println("两个txt文件相同");
}
else{
System.out.println("两个txt文件不相同");
}
}
}
先搞个测试版给你看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的电脑上没有安装eclips 不好写出源代码,文件的读写操作可以自己参考API
具体的思路是:
1,将两个文件中的内容读取出来放入到两个StringBuffer或String变量中
2,得到两个String变量的size ,以小的那个为循环控制的终值。
3. 比较两个字符串的不同
部分代码如下
Public class Test(){
File f1 = new File("文件1的绝对或相对路径");
File f2 = new File(“文件1的绝对或相对路径");
private void fileEquals(FileI file1,File file2){
String f1Str;
String f2Str;
将file1和file2读入到f1Str和f2Str中;
int sizeFile1=file1Str.length();
int sizeFile2=file2Str.length();
for(int i = 0; i<(sizeFile1<sizeFile2?sizeFile1:sizeFile2);i++){
if(sizeFile1.charAt(i).equals(sizeFile2.charAt(i))){
将相同部分的内容写入Log文件中;
}else{
将不同部分的内容用*号代替代;
}
for(int i=sizeFile1<sizeFile2?sizeFile1:sizeFile2;i<(sizeFile1>sizeFile?sizeFile1:sizeFile2);i++){
将大文件余下的部分用*号替换写入Log文件中;
}
}
public static void main(String[] args){
Test t = new Test();
t. fileEquals(f1,f2);
}
}
}
具体的思路是:
1,将两个文件中的内容读取出来放入到两个StringBuffer或String变量中
2,得到两个String变量的size ,以小的那个为循环控制的终值。
3. 比较两个字符串的不同
部分代码如下
Public class Test(){
File f1 = new File("文件1的绝对或相对路径");
File f2 = new File(“文件1的绝对或相对路径");
private void fileEquals(FileI file1,File file2){
String f1Str;
String f2Str;
将file1和file2读入到f1Str和f2Str中;
int sizeFile1=file1Str.length();
int sizeFile2=file2Str.length();
for(int i = 0; i<(sizeFile1<sizeFile2?sizeFile1:sizeFile2);i++){
if(sizeFile1.charAt(i).equals(sizeFile2.charAt(i))){
将相同部分的内容写入Log文件中;
}else{
将不同部分的内容用*号代替代;
}
for(int i=sizeFile1<sizeFile2?sizeFile1:sizeFile2;i<(sizeFile1>sizeFile?sizeFile1:sizeFile2);i++){
将大文件余下的部分用*号替换写入Log文件中;
}
}
public static void main(String[] args){
Test t = new Test();
t. fileEquals(f1,f2);
}
}
}
参考资料: `
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
感冒头疼, 帮你写一个 拿去玩吧
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.awt.event.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
/**
*
* @author xiaobao
*
*/
public class Test extends JFrame{
JTextArea area;
public Test(){
setTitle("test");
setSize(300,300);
setLayout(new BorderLayout());
area = new JTextArea();
add(new JScrollPane(area),BorderLayout.CENTER);
JButton button = new JButton("save");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
save();
}
});
add(button,BorderLayout.SOUTH);
}
public void save(){
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new FileFilter(){
@Override
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt");
}
@Override
public String getDescription() {
return "SAVE TO";
}
});
int r = chooser.showSaveDialog(this);
if(r!=JFileChooser.APPROVE_OPTION) return;
File f = chooser.getSelectedFile();
String text = area.getText();
String[] lines = text.trim().split("\n");
try {
PrintWriter out = new PrintWriter(new FileOutputStream(f),true);
for(String line:lines)
out.println(line);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run() {
JFrame frame = new Test();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import java.awt.event.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
/**
*
* @author xiaobao
*
*/
public class Test extends JFrame{
JTextArea area;
public Test(){
setTitle("test");
setSize(300,300);
setLayout(new BorderLayout());
area = new JTextArea();
add(new JScrollPane(area),BorderLayout.CENTER);
JButton button = new JButton("save");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
save();
}
});
add(button,BorderLayout.SOUTH);
}
public void save(){
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new FileFilter(){
@Override
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt");
}
@Override
public String getDescription() {
return "SAVE TO";
}
});
int r = chooser.showSaveDialog(this);
if(r!=JFileChooser.APPROVE_OPTION) return;
File f = chooser.getSelectedFile();
String text = area.getText();
String[] lines = text.trim().split("\n");
try {
PrintWriter out = new PrintWriter(new FileOutputStream(f),true);
for(String line:lines)
out.println(line);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
public void run() {
JFrame frame = new Test();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正确的做法应该是读取两个文件的内容,然后分别计算md5,再比对md5,如果 md5一样,就是相同,不一样则不同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询