相关疑难解决方法(0)

使用 Java 检查重复文件内容

我们有一个 150 Gb 的数据文件夹。其中,文件内容可以是任何格式(doc、jpg、png、txt 等)。我们需要相互检查所有文件内容以检查是否有重复的文件内容。如果是,则打印文件路径名列表。为此,我首先使用ArrayList<File>存储所有文件,然后使用FileUtils.contentEquals(file1, file2)方法。当我尝试处理少量文件(文件夹)时,它可以工作,但是对于这个 150Gb 数据文件夹,它没有显示任何结果。我认为首先将所有文件存储在 ArrayList 中会产生问题。JVM 堆问题,我不确定。

任何人都有更好的建议和示例代码来处理如此大量的数据?请帮我。

java algorithm collections checksum fileutils

4
推荐指数
1
解决办法
3520
查看次数

使用DigestInputStream计算来自同一InputStream的多个校验和

我试图弄清楚如何基于相同的InputStream使用读取多个摘要(md5,sha1,gpg)DigestInputStream.根据我在文档中检查的内容,似乎可以通过克隆摘要来实现.有人可以说明一下吗?

我不想重新读取流来计算校验和.

java checksum md5 sha1 gnupg

3
推荐指数
1
解决办法
3060
查看次数

Java,断言文件等于

我希望通过char比较使用char来断言文件.最好的方法是什么?没有第三方库.哪个文件阅读器最适合这个?

java performance equals

2
推荐指数
1
解决办法
2570
查看次数

两个文件是否指向同一个文件?

我想确保两个java.io.File没有指向同一个文件,我尝试了各种方法,最后找到了一种方法,但我想确保它周围没有漏洞.

这很重要,因为我正在尝试编写一个删除重复文件的程序,我不想因为两个java.io.File指向同一个文件而最终删除一个唯一的文件.

File f1 = new File("file.txt");
File f2 = new File("./file.txt");
//these methods can't tell it's the same file
System.out.println(f1.compareTo(f2)); // 56 which mean not equal
System.out.println(f1.equals(f2)); // false
System.out.println(f1 == f2); // false
System.out.println(f1.getAbsolutePath().compareTo(f2.getAbsolutePath())); // 56

// this method can tell it's the same file... hopefully.
try{
    System.out.println(f1.getCanonicalPath().compareTo(f2.getCanonicalPath())); // 0
}catch (Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

另一方面,我的try-catch代码有问题吗?我跑的时候会给我一个警告.

java file-comparison

2
推荐指数
1
解决办法
1061
查看次数

连接丢失后恢复文件上传/下载(套接字编程)

我正在编写一个程序,使用套接字编程在客户端和服务器之间下载/上传文件.我写的代码到目前为止,我可以成功地传输文件.但是,如果在发生下载/上传时由于网络/客户端/服务器中的问题导致连接失败..我需要从原始点恢复下载/上传(不希望重新发送最初发送的数据).我不知道该如何解决这个问题.我正在将文件读入字节数组并通过网络发送.我最初的想法是,每次我下载..我应该检查文件是否已经存在并将数据读入字节数组 - >将数据发送到服务器进行比较,然后通过服务器文件返回剩余的数据比较两个字节数组.但这似乎效率低下并且不再重新开始下载(因为我再次发送数据).注意:文件名是唯一标识符.如果有人能就我应该如何实现文件恢复功能给我建议,我真的很感激?

Server side code:
    package servers;
    import java.io.*;
    import java.net.*;
    import java.util.Arrays;
    public class tcpserver1 extends Thread
    {
        public static void main(String args[]) throws Exception 
    {
        ServerSocket welcomeSocket = null;
        try
        {
             welcomeSocket = new ServerSocket(5555);
             while(true)
             {
                 Socket socketConnection = welcomeSocket.accept();
                 System.out.println("Server passing off to thread");
                 tcprunnable tcprunthread = new tcprunnable(socketConnection);
                 Thread thrd = new Thread(tcprunthread);
                 thrd.start();
                 System.out.println(thrd.getName());
             }
        }
         catch(IOException e){
             welcomeSocket.close();
             System.out.println("Could not connect...");
         }
      }
}
class tcprunnable implements Runnable
{
    Socket socke;
    public …
Run Code Online (Sandbox Code Playgroud)

java sockets resume tcp client-server

1
推荐指数
1
解决办法
8457
查看次数

如何计算文件的SHA512?

我有一个文件,我需要计算它的 SHA512 值。我发现很多网站都提供为我做这件事,但我想用 Java 以编程方式来做(好吧,Groovy,但它是一样的)。

对于那些好奇的人,我正在运行 Oracle 的 TZUpdater 工具并将其指向本地文件。这需要一个包含该文件的 SHA512 值的文件。 http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html

java hash groovy sha512

1
推荐指数
2
解决办法
6178
查看次数

图像下载java的集成测试

我正在尝试编写集成测试,以查看是否从URL正确下载了文件.我不确定如何测试这个,因为我希望在byte []中获取文件,但我不确定我正在比较它的图像.我想过手动下载文件,然后将其转换为字节并获取结果并将其粘贴到代码中作为预期值,然后将其与我得到的结果进行比较.如果你有更好的主意,我会很高兴听到它.

谢谢:)

java testing integration-testing

0
推荐指数
1
解决办法
364
查看次数