黑马程序员技术交流社区
标题:
io多文件合并成一个文件的疑问
[打印本页]
作者:
凝聚
时间:
2013-11-5 09:27
标题:
io多文件合并成一个文件的疑问
本帖最后由 凝聚 于 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个文件的数据,问怎样才能让他们换行啊
作者:
~﹏~
时间:
2013-11-5 13:34
我想到一个办法:在合并前将每个文件读出来然后追加一个“\n”.getBytes();嘿嘿
作者:
杨增坤
时间:
2013-11-5 14:52
合并流这样就是为了方便读取,把流都链接起来,合并到一起。
要向在读取每个文件后面有换行的话,那么读取的文件最后都有换行,都回车一下。
或者,把合并流封装到BufferedReader'中,使用转换流。
BufferedReader br=new BufferedReader(new InputStreamReader(合并流对象));
然后一行一行的读取,也如的时候用BufferedWriter,然后写一行,换行一次,
这样应该就可以在每个文件之间换行。
希望对你有帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2