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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彩虹 中级黑马   /  2012-5-18 18:56  /  1694 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    import java.io.*;
    import java.util.*;
    class  SequenceDemo
    {
        public static void main(String[] args) throws IOException
        {
        Vector<FileInputStream>v=new Vector<FileInputStream>();
        v.add(new FileInputStream("aa.txt"));
        v.add(new FileInputStream("bb.txt"));
        v.add(new FileInputStream("cc.txt"));

        Enumeration<FileInputStream>en=v.elements();
        SequenceInputStream sis=new SequenceInputStream(en);
        FileOutputStream fos=new FileOutputStream("dd.txt");

        byte[] buf=new byte[1024];
        int len=0;
        while((len=sis.read(buf))!=-1)
                {
                     fos.write(buf,0,len);
                }
                fos.close();
                sis.close();
        }
    }
       为什么这段程序将aa.txt文件中的数据写入到dd.txt后,在录入bb.txt文件里的数据时,不换行???dd.txt中的数据如下图,毕老师的是换了行,很整齐的,why,求解!!!



未命名.jpg (38.47 KB, 下载次数: 47)

未命名.jpg

8 个回复

倒序浏览
这个问题当初看视频的时候我也注意到了,你回看下视频,毕老师的保存的原始文档最后一行, 有换行的,你保存的文件应该没换行吧。。所以连在了一起
回复 使用道具 举报
本帖最后由 田林 于 2012-5-18 19:08 编辑

是不是你文本文件最后一行没有换行!
回复 使用道具 举报
在你的fos.write(buf,0,len);
手动加一个fos.write('\r\n');
回复 使用道具 举报
我翻了下笔记,老师的文件是敲了回车的. 也就是代码的\r\n
我估计是你的文本aa bb cc只有一行 而且末尾没有换行也就是\r\n
回复 使用道具 举报
孙宇晨 发表于 2012-5-18 19:36
我翻了下笔记,老师的文件是敲了回车的. 也就是代码的\r\n
我估计是你的文本aa bb cc只有一行 而且末尾没有 ...

     我试了下,代码是没有问题的,文件aa,bb,cc不是只有一行,问题的关键出在应该在aa,bb文件的最后一行敲一个回车键,让光标移到下一行。
回复 使用道具 举报
彩虹 中级黑马 2012-5-18 20:50:45
7#
ttkl123654 发表于 2012-5-18 20:26
直接写进去吧。

嗯!你这种解决方法不错!赞一个!:handshake
回复 使用道具 举报
万章云 发表于 2012-5-18 20:41
我试了下,代码是没有问题的,文件aa,bb,cc不是只有一行,问题的关键出在应该在aa,bb文件的最后 ...

我说的就是你再不就是文本只有一行 再不就是全文末尾没有换行= =
回复 使用道具 举报
彩虹 中级黑马 2012-5-18 23:21:09
9#
孙宇晨 发表于 2012-5-18 21:05
我说的就是你再不就是文本只有一行 再不就是全文末尾没有换行= =

嗯嗯!谢谢,问题已得到解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马