0

考虑文件夹中的 1000 个文件。现在我想在该文件夹中找到相同的文件。

我逐字节比较厌倦了它,但花了很长时间才完成。这是代码

fs1=new BufferedInputStream(new FileInputStream(file1));
fs2=new BufferedInputStream(new FileInputStream(file2));

int b1,b2;
do
{
b1=fs1.read();
b2=fs2.read();
    if(b1!=b2)
    {
        match=false;    
        break;
    }
}while(found && b1 !=- 1);

if(match)
{
    Log.e("cyb", "Matched");
}

还有其他方法可以找到相同的文件吗?

4

1 回答 1

3

优化代码应该做的第一件事是检查比较文件的大小。如果大小不同,那么将文件读入内存并逐字节比较它们是没有意义的。

您可以做的另一件事是首先为每个文件计算 CRC,然后仅对具有相同 CRC(和相同长度)的文件进行实际比较。如果您要处理许多相同长度的不同文件,这将极大地限制昂贵的逐字节比较的数量。

于 2012-12-19T15:13:05.360 回答