黑马程序员技术交流社区

标题: io输出问题 [打印本页]

作者: 彩虹    时间: 2012-5-18 18:56
标题: io输出问题
    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, 下载次数: 67)

未命名.jpg

作者: 许涛    时间: 2012-5-18 19:03
这个问题当初看视频的时候我也注意到了,你回看下视频,毕老师的保存的原始文档最后一行, 有换行的,你保存的文件应该没换行吧。。所以连在了一起
作者: 田林    时间: 2012-5-18 19:07
本帖最后由 田林 于 2012-5-18 19:08 编辑

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

     我试了下,代码是没有问题的,文件aa,bb,cc不是只有一行,问题的关键出在应该在aa,bb文件的最后一行敲一个回车键,让光标移到下一行。
作者: 彩虹    时间: 2012-5-18 20:50
ttkl123654 发表于 2012-5-18 20:26
直接写进去吧。

嗯!你这种解决方法不错!赞一个!:handshake
作者: 孙宇晨    时间: 2012-5-18 21:05
万章云 发表于 2012-5-18 20:41
我试了下,代码是没有问题的,文件aa,bb,cc不是只有一行,问题的关键出在应该在aa,bb文件的最后 ...

我说的就是你再不就是文本只有一行 再不就是全文末尾没有换行= =
作者: 彩虹    时间: 2012-5-18 23:21
孙宇晨 发表于 2012-5-18 21:05
我说的就是你再不就是文本只有一行 再不就是全文末尾没有换行= =

嗯嗯!谢谢,问题已得到解决了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2