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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凝聚 中级黑马   /  2013-11-5 09:27  /  1387 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 凝聚 于 2013-11-5 20:15 编辑

Vector<FileInputStream>v=new Vector<FileInputStream>();
                v.add(new FileInputStream("D://file//1.txt"));
                v.add(new FileInputStream("D://file//2.txt"));
                v.add(new FileInputStream("D://file//3.txt"));
                Enumeration<FileInputStream>en=v.elements();
                SequenceInputStream sis=new         SequenceInputStream(en);
                FileOutputStream fos=new FileOutputStream("D://file//4.txt");
                byte[]buf=new byte[1024];
                int len=0;
                while((len=sis.read(buf))!=-1)
                {
                        fos.write(buf,0,len);
                }
                fos.close();
                sis.close();
这段代码是把三个文件的数据合并到一个文件中,但在“4.txt"中三个文件在其中并没有换行啊,输出的形式是:
1111111111111111

1111111111111111

1111111111111111222222222222222

222

222222222222222233333333333

33333333333333

333333333

1,2,3分别是是第1,2,3个文件的数据,问怎样才能让他们换行啊



评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
我想到一个办法:在合并前将每个文件读出来然后追加一个“\n”.getBytes();嘿嘿
回复 使用道具 举报 1 0
合并流这样就是为了方便读取,把流都链接起来,合并到一起。
要向在读取每个文件后面有换行的话,那么读取的文件最后都有换行,都回车一下。




或者,把合并流封装到BufferedReader'中,使用转换流。
BufferedReader br=new BufferedReader(new InputStreamReader(合并流对象));


然后一行一行的读取,也如的时候用BufferedWriter,然后写一行,换行一次,
这样应该就可以在每个文件之间换行。


希望对你有帮助!
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马