java IO流(java分割、合并任意类型文件)

/*
 * 以下代码演示了java分割和合并文件的功能。
 */
import java.io.*;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;




public class SplitFileDemo {
public static void main(String[] args) throws IOException {
//splitFile();
merge();
}
//合并文件
public static void merge() throws IOException
{
//多个读取流对象与文件相关联,首先创建集合
ArrayList<FileInputStream> a1=new ArrayList<FileInputStream>();
//添加输入流对象操作文件。
a1.add(new FileInputStream("c:\\abc\\1.txt"));
a1.add(new FileInputStream("c:\\abc\\2.txt"));
a1.add(new FileInputStream("c:\\abc\\3.txt"));
//定义a1的迭代器。
final Iterator<FileInputStream> it=a1.iterator();
//定义一个枚举类型的变量,复写里面的方法。
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>() {
//判断枚举里是否还有元素
public boolean hasMoreElements() {
//返回一个ithasNext();判断a1里面是否还有元素
return it.hasNext();
}
//如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
public FileInputStream nextElement() {
//返回a1里的下一个元素
return it.next();
}};
SequenceInputStream sis =new SequenceInputStream(en);
//创建文件读取流对象
FileOutputStream fos=new FileOutputStream("c:\\demo7.txt");
//定义字节数组
byte[] buf=new byte[200];
//记录数组的长度。
int len=0;
//将序列流里的字符全部存入数组。
while((len=sis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
public static void splitFile() throws IOException
{
//创建字节输入流对象读取文本。
FileInputStream fis=new FileInputStream("c:\\b.txt");
//创建字节输出流读取文本。
FileOutputStream fos=null;
//创建字节数组。
byte[] buf=new byte[40];
int len=0;
int count=1;
//将文本中的字节数据存入数组中。
while ((len=fis.read(buf))!=-1)
{
//使用字节输出流往文本里写入数据。
fos=new FileOutputStream("c:\\abc\\"+(count++)+".txt");
//将字节数组中的字节数据写入输出流的文本中。
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值