博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础之IO流,合并流对象SequenceInputStream对文件的切割与合并操作
阅读量:5032 次
发布时间:2019-06-12

本文共 1623 字,大约阅读时间需要 5 分钟。

文件的切割:

 

import java.io.*;
class SplitFilesDemo
{
    
public 
static 
void main(String[] args) 
throws Exception
    {
        File file = 
new File("a.avi");
        
        BufferedInputStream bis = 
new BufferedInputStream(
new FileInputStream(file));
        FileOutputStream fos = 
null
        
        
byte[] buffer = 
new 
byte[1024*1024*10];
        
int length= 0,count = 1;
        
        
while((length=bis.read(buffer))!=-1)
        {
            fos = 
new FileOutputStream("split\\"+count+++".part");
            fos.write(buffer,0,length);
            fos.close();
        }        
        
        bis.close();
    }
}

使用合并流对象SequenceInputStream对文件进行合并

 

import java.io.*;
import java.util.*;
class MergeFilesDemo
{
    
public 
static 
void main(String[] args) 
throws Exception
    {
        List<FileInputStream> files = 
new ArrayList<FileInputStream>();
        getFiles(
new File("split"),".part",files);
        
        
final Iterator<FileInputStream> it = files.iterator();
        Enumeration<FileInputStream> em = 
new Enumeration<FileInputStream>(){
            
public 
boolean hasMoreElements()
            {
                
return it.hasNext();
            }
            
            
public FileInputStream nextElement()
            {
                
return it.next();
            }
        };
        
        SequenceInputStream sis = 
new SequenceInputStream(em);        
        FileOutputStream fos = 
new FileOutputStream(
new File("b.avi"));
        
        
int length = 0;
        
byte[] buffer = 
new 
byte[1024*1024*10];
        
while((length=sis.read(buffer))!=-1)
        {
            fos.write(buffer,0,length);
        }
        
        fos.close();
        sis.close();
    }
    
    
public 
static 
void getFiles(File dir,String suffix,List<FileInputStream> listFiles) 
throws Exception
    {
        File[] files = dir.listFiles();
        
for(File file : files)
        {
            
if(file.isDirectory())
            {
                getFiles(file,suffix,listFiles);
            }
            
else
            {
                
if(file.getName().endsWith(suffix))
                    listFiles.add(
new FileInputStream(file));
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/cxmsky/archive/2013/02/02/2889906.html

你可能感兴趣的文章
一位数据挖掘成功人士 给 数据挖掘在读研究生 的建议
查看>>
Python3.6.0安装
查看>>
hdu1049
查看>>
H5项目常见问题及注意事项
查看>>
索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程
查看>>
时间模块 && time datetime
查看>>
jquery自动生成二维码
查看>>
spring回滚数据
查看>>
新浪分享API应用的开发
查看>>
美国专利
查看>>
【JavaScript】Write和Writeln的区别
查看>>
百度编辑器图片在线流量返回url改动
查看>>
我对你的期望有点过了
查看>>
微信小程序wx:key以及wx:key=" *this"详解:
查看>>
下拉框比较符
查看>>
2.2.5 因子的使用
查看>>
css选择器
查看>>
photoplus
查看>>
Python 拓展之推导式
查看>>
[Leetcode] DP-- 474. Ones and Zeroes
查看>>