我们有一个 150 Gb 的数据文件夹。其中,文件内容可以是任何格式(doc、jpg、png、txt 等)。我们需要相互检查所有文件内容以检查是否有重复的文件内容。如果是,则打印文件路径名列表。为此,我首先使用ArrayList<File>存储所有文件,然后使用FileUtils.contentEquals(file1, file2)方法。当我尝试处理少量文件(文件夹)时,它可以工作,但是对于这个 150Gb 数据文件夹,它没有显示任何结果。我认为首先将所有文件存储在 ArrayList 中会产生问题。JVM 堆问题,我不确定。
任何人都有更好的建议和示例代码来处理如此大量的数据?请帮我。
我试图弄清楚如何基于相同的InputStream使用读取多个摘要(md5,sha1,gpg)DigestInputStream.根据我在文档中检查的内容,似乎可以通过克隆摘要来实现.有人可以说明一下吗?
我不想重新读取流来计算校验和.
我希望通过char比较使用char来断言文件.最好的方法是什么?没有第三方库.哪个文件阅读器最适合这个?
我想确保两个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代码有问题吗?我跑的时候会给我一个警告.
我正在编写一个程序,使用套接字编程在客户端和服务器之间下载/上传文件.我写的代码到目前为止,我可以成功地传输文件.但是,如果在发生下载/上传时由于网络/客户端/服务器中的问题导致连接失败..我需要从原始点恢复下载/上传(不希望重新发送最初发送的数据).我不知道该如何解决这个问题.我正在将文件读入字节数组并通过网络发送.我最初的想法是,每次我下载..我应该检查文件是否已经存在并将数据读入字节数组 - >将数据发送到服务器进行比较,然后通过服务器文件返回剩余的数据比较两个字节数组.但这似乎效率低下并且不再重新开始下载(因为我再次发送数据).注意:文件名是唯一标识符.如果有人能就我应该如何实现文件恢复功能给我建议,我真的很感激?
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) 我有一个文件,我需要计算它的 SHA512 值。我发现很多网站都提供为我做这件事,但我想用 Java 以编程方式来做(好吧,Groovy,但它是一样的)。
对于那些好奇的人,我正在运行 Oracle 的 TZUpdater 工具并将其指向本地文件。这需要一个包含该文件的 SHA512 值的文件。 http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
我正在尝试编写集成测试,以查看是否从URL正确下载了文件.我不确定如何测试这个,因为我希望在byte []中获取文件,但我不确定我正在比较它的图像.我想过手动下载文件,然后将其转换为字节并获取结果并将其粘贴到代码中作为预期值,然后将其与我得到的结果进行比较.如果你有更好的主意,我会很高兴听到它.
谢谢:)