下面这段代码的作用是将一个文本文件的内容完全替换为另一个文本文件的内容import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class BufferOne {    public BufferOne() {
    }
    
    public static void main(String []args){
     FileInputStream fis;
     FileOutputStream fos;
     BufferedInputStream bis;
     BufferedOutputStream bos;
    
     int i;
     try
     {
     fis=new FileInputStream("One.txt");
     bis=new BufferedInputStream(fis);
     fos=new FileOutputStream("Two.txt");//我发现这个构造方法直接导致实参Two.txt的内容被清空
//有没有不清空的方法?使Two.txt的内容被One.txt的内容追加而不是替换。如果没有这样的方法,请告诉我怎么追加
     bos=new BufferedOutputStream(fos);
    
     i=bis.read();
     while(i!=-1)
     {
     bos.write(i);
     bos.flush();//这句话什么意思?
     i=bis.read();
     }
    
     fis.close();
     fos.close();
     bis.close();
     bos.close();
     }
    
     catch(IOException e)
     {
     System.out.println("do not find the file");
     }
    }
}

解决方案 »

  1.   

    FileWriter(File file, boolean append) File out_file = new("Two.txt");
    public class FileWriter(out_file,true);
      

  2.   

    public FileOutputStream(String name,
                            boolean append)
                     throws FileNotFoundException
      

  3.   

    谢谢楼上!可否再帮忙解释下程序段中的bos.flush();
      

  4.   

    刷新此缓冲的输出流。这迫使所有缓冲的输出字节被写出到底层输出流中。 
    这个在API文档中有的,所以多看看文档!