Java---练习:文件切割与合并(1)

举报
谙忆 发表于 2021/05/28 06:52:38 2021/05/28
【摘要】 实现对大文件的切割与合并。 按指定个数切(如把一个文件切成10份)或按指定大小切(如每份最大不超过10M),这两种方式都可以。 示例程序说明: 文件切割:把一个文件切割成多个碎片,每个碎片的大小不超过1M。自己可把功能进一步扩展:切割前的文件名、长度,切割后的碎片个数、文件名等信息可写到第一个碎片中或另外用properties把这些写到配置文件中。 文件合并:这...

实现对大文件的切割与合并。
按指定个数切(如把一个文件切成10份)或按指定大小切(如每份最大不超过10M),这两种方式都可以。

示例程序说明:
文件切割:把一个文件切割成多个碎片,每个碎片的大小不超过1M。自己可把功能进一步扩展:切割前的文件名、长度,切割后的碎片个数、文件名等信息可写到第一个碎片中或另外用properties把这些写到配置文件中。
文件合并:这里简单假设已知被合并目录的File对象和原文件的名字。其实这些完全可以做成活的,如把这些信息保存在碎片文件或配置文件,也可以同样用文件选择对话框来读取用户的选择。

实现代码:

“`
package io.string;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Scanner;

public class SequenceInputStreamDemo {
static final String FILE = “e:\fenge\”;
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入fenge文件下需要分割的文件名(需要后缀):”);
String str = sc.next();
InputStream in =new BufferedInputStream(new FileInputStream(FILE+str));

 OutputStream out = null; long t = 0; String c = "chx"; int le; byte bt[] = new byte[10240]; while((le=in.read(bt))!=-1){ out = new BufferedOutputStream(new FileOutputStream(FILE+c+t+"_"+str)); out.write(bt, 0, le); t++; } in.close(); out.close(); System.out.println("文件合并开始:::"); ArrayList<FileInputStream> v = new ArrayList<FileInputStream>(); for(int i=0;i<t;i++){ FileInputStream f = new FileInputStream(FILE+c+i+"_"+str); v.add(f); } Enumeration<FileInputStream> e = Collections.enumeration(v); SequenceInputStream sin = new SequenceInputStream(e); FileOutputStream fout = new FileOutputStream(FILE+c+str); int len=0; byte bf[] = new byte[1024]; while((len=sin.read(bf))!=-1){ fout.write(bf, 0, len); } fout.close(); System.out.println("文件合并结束:::");
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

}

“`

文件目录:

目前只实现了切割合并那一个文件夹下的文件!!!!

文章来源: chenhx.blog.csdn.net,作者:谙忆,版权归原作者所有,如需转载,请联系作者。

原文链接:chenhx.blog.csdn.net/article/details/51259753

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。