A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

/*
        SequenceInputStream的练习02 -- 合并多个输入流。

        使用构造方法:
        public SequenceInputStream(Enumeration<? extends InputStream> e)

        注意 : 要使用泛型,不然编译报错。
        Note:   xxxxxxx.java   uses   unchecked   or   unsafe   operations.
        Note:   Recompile   with   -Xlint:unchecked   for   details.

*/

import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.SequenceInputStream;
import java.util.Vector;
import java.util.Enumeration;

class SequenceInputStreamDemo02 {
        public static void main(String[] args) {
                FileInputStream fis1=null;
                FileInputStream fis2=null;
                FileInputStream fis3=null;
                SequenceInputStream sis=null;
                FileOutputStream fos=null;
                Vector<FileInputStream> vector=new Vector<FileInputStream>();
                try{
                        //创建三个输入流
                        fis1=new FileInputStream("1.txt");
                        fis2=new FileInputStream("2.txt");
                        fis3=new FileInputStream("3.txt");
                        //添加输入流对象
                        vector.addElement(fis1);
                        vector.addElement(fis2);
                        vector.addElement(fis3);
                        //获取Vector中对象
                        Enumeration<FileInputStream> e=vector.elements();
                        //将Enumeration中的流合并
                        sis=new SequenceInputStream(e);
                        fos=new FileOutputStream("new.txt");
                        int len=0;
                        byte[] bytes=new byte[1024];
                        while((len=sis.read(bytes))!=-1){
                                fos.write(bytes,0,len);
                                fos.write("\r\n".getBytes());
                        }
                }catch(IOException e){
                        e.printStackTrace();
                }finally{
                        // 关闭流
                        try{
                                if (fis1!=null){
                                        fis1.close();
                                }
                        }catch(IOException e){
                                e.printStackTrace();
                        }
                       
                        try{
                                if (fis2!=null){
                                        fis2.close();
                                }
                        }catch(IOException e){
                                e.printStackTrace();
                        }

                        try{
                                if (fis3!=null){
                                        fis3.close();
                                }
                        }catch(IOException e){
                                e.printStackTrace();
                        }

                        try{
                                if (sis!=null){
                                        sis.close();
                                }
                        }catch(IOException e){
                                e.printStackTrace();
                        }

                        try{
                                if (fos!=null){
                                        fos.close();
                                }
                        }catch(IOException e){
                                e.printStackTrace();
                        }
                }
        }
}

/*
        1.txt文件内容:
        迎接光辉岁月!
*/
/*
        2.txt文件内容:
        梦想有日达成,找到心里梦想的世界。
*/
/*
        3.txt文件内容:
        天空海阔你与我,可会变。
*/
/*
        生成的new.txt文件内容:
        迎接光辉岁月!
        梦想有日达成,找到心里梦想的世界。
        天空海阔你与我,可会变。
*/

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马