import java.io.*;
import java.util.*;public class TestBufferedOutputStream{
  public static void main(String args[])throws IOException{
     List<byte []> li=new ArrayList<byte []>();
        BufferedInputStream bi
            =new BufferedInputStream(new FileInputStream("1.txt"));
        BufferedOutputStream bo
            =new BufferedOutputStream(new FileOutputStream("2.txt"));
        byte data[]=new byte[8];
        while(bi.read(data)!=-1){
            li.add(data);
        }
        for(int i=0;i<li.size();i++){
            bo.write(li.get(i));
            bo.write(13);
            bo.write(10);
        }
        bo.flush();
        bo.close();
        bi.close();
  }
}
怎么得到的是重复的内容?

解决方案 »

  1.   

    比如1.txt中有12换行34 执行完后2.txt中会有12 换行34口口这个乱码
      

  2.   

    你这段代码的作用就是把1.txt文件内容写到2.txt文件并在后面增加两个asII码 13和10,有什么问题么。。
      

  3.   

    import java.io.*;
    import java.util.*;public class TestBufferedOutputStream{
          public static void main(String args[])throws IOException{
                List<byte []> li=new ArrayList<byte []>();
            BufferedInputStream bi
                =new BufferedInputStream(new FileInputStream("1.txt"));
            BufferedOutputStream bo
                =new BufferedOutputStream(new FileOutputStream("2.txt"));
            byte data[]=new byte[1];
            while(bi.read(data)!=-1){
                bo.write(data);
            }
            bo.write(13);
            bo.write(10);
            bo.flush();
            bo.close();
            bi.close();
          }
    }
    这样写没有乱码,这个data缓冲数组多大有要求吗,请教
      

  4.   

    当然有问题了,你那个data数组加到容器里就能自动深拷贝啊。你在2.txt中得到的必然是1.txt最后的8个字节位的内容。
      

  5.   

    楼主想要的功能是每八个字节就加换行吧,换其它流吧。java.io.BufferedWriter
    就有一个方法newLine() 写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符。 这样还跨平台,在什么操作系统都是写入换行。而且,根据编码的不同,你这样直接8个字节断行,会把字符从中间断开,字符就被破坏了。而用bufferedWriter可以保证字符的完整。
      

  6.   


    1.txt文件里内容:
    1234567890
    9876543210
    abcdefghij
    ABCDEFGHIJ
      

  7.   

    很简单,你因为用了Stream流,Stream流是字节流,
      

  8.   

    因为你的data[]中的内容是最后一次写入的,而你的容器li中,所有的object都是这个data[]。