网络传输过程中大文件的分割以及合并

应用场景:
现有一个比较大的文件需要远程传输,但是因为文件比较大,在传输过程中会报错,因此,采用的方案是把大文件切割成一个个小文件,最后再进行合并!
我是通过一段Java代码把hdfs的一个500M文件下载到本地,生成两个文件,然后进行合并的。
代码如下:

 @Test
public void download() throws IOException {
    FSDataInputStream in = fileSystem.open(new Path("/hdfsapi2/hadoop-2.6.0-cdh5.16.2.tar.gz"));
    FileOutputStream out = new FileOutputStream(new File("out/spark.tgz.part0"));
    byte[] buffer = new byte[2048];
    for (int i = 0;i<1024*1024*128/2048;i++){
        in.read(buffer);
        out.write(buffer);
    }
    IOUtils.closeStream(in);
    IOUtils.closeStream(out);
}

@Test
public void download2() throws IOException {
    FSDataInputStream in = fileSystem.open(new Path("/hdfsapi2/hadoop-2.6.0-cdh5.16.2.tar.gz"));
    FileOutputStream out = new FileOutputStream(new File("out/spark.tgz.part1"));
    byte[] buffer = new byte[2048];
    in.seek(1024*1024*128);
    IOUtils.copyBytes(in,out,fileSystem.getConf());
    IOUtils.closeStream(in);
    IOUtils.closeStream(out);
}

然后在本地打开cmd命令行
win+r
进入到对应的文件夹(我是在F盘,首先要执行命令 F: 进入到F盘中,才能切换目录!!!)
通过以下命令进行合并:
type spark.tgz.part1 >> spark.tgz.part0
将第二个文件块追加到第一个文件中。
然后,结束后,把第一个文件重新命名,准确的说是加一个 .gz的后缀,把这个文件变成压缩包。
之后在进行解压,就是原来的那个文件了,试试吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于您的问题,我可以回答。 在Spring中传输文件,可以使用Spring框架中的Multipart文件上传机制。Multipart文件上传是HTTP协议中的一种机制,它可以支持在一个HTTP请求中上传多个文件。在Spring中,可以使用MultipartFile对象来表示上传的文件。您可以在Spring MVC控制器方法的参数中添加MultipartFile类型的参数来接收上传的文件。接收到文件后,您可以使用MultipartFile对象的方法来获取文件的信息和内容,并将文件保存到磁盘或其他存储介质中。 ### 回答2: 在Spring中,如果需要进行大文件传输,我们可以使用Multipart文件上传的方式。Multipart文件上传是通过HTTP协议将文件分割成多个部进行传输的一种方式。 在Spring中,我们可以通过使用MultipartFile类型的参数进行文件传输。MultipartFile是Spring提供的一个用于处理文件上传的接口,它可以获取上传文件的内容以及相关的元数据。 在控制器的方法中,可以通过在参数列表中添加MultipartFile类型的参数来接收上传的文件。然后,我们可以使用MultipartFile的一些方法来处理文件的保存、读取等操作。 为了支持大文件传输,我们可以在Spring配置文件中对MultipartResolver进行配置,将其设置为支持大文件的处理方式。例如,可以通过设置maxUploadSize属性来限制上传文件的大小。 当文件上传完成后,我们可以将文件保存到服务器的本地磁盘中,或者将文件保存到数据库中,或者进行其他相关的业务操作。 总而言之,Spring中大文件传输可以通过Multipart文件上传的方式进行。通过使用MultipartFile类型的参数和对MultipartResolver进行配置,我们可以实现对大文件传输和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值