我正在JAVA中编写一个客户端服务器程序,我正在从服务器向客户端发送文件。由于文件大小可能很高,因此我决定将文件分成5个部分,然后将其发送到同一个程序客户端有5种不同的主题。
答案 0 :(得分:2)
您应该将拉链部分与分割部分分开。如果你必须将这些发送到客户端,你可能不希望在等待客户端请求下一个块时将完整的zip文件保留在内存中......所以最简单的方法是首先压缩到磁盘,然后以块的形式提供该文件。那时,它根本不是拉链文件 - 实际上对于某些文件类型(例如图像,声音,视频)而言,你可能根本不想通过zip文件。
我建议你告诉客户端文件名和大小,然后让客户端请求它想要的文件的任何部分。然后它可以决定使用什么块大小:您只需要寻找文件的正确位并提供客户端请求的数据。
答案 1 :(得分:0)
分解文件不是ZIP功能。您可以从生成的zip文件创建多个字节数组(通过分割数组)并在不同的线程中发送每个段。这与昔日的下载经理会做的类似。
然后客户端将拥有以正确顺序重新组装字节数组的代码。您可能需要为每个段添加一些其他信息,例如正确的序列,要还原的文件名以及预期的段数。