复制文件-用FileOutputStream和FileInputStream读写文件

时间:2022-05-24 08:50:22

 

//写文件
   File file=new File("demo1.txt");//抽象一个1.txt的文件,处理文件名或者路径
   //构造两个FileOutPutStream的实例对象,先定义一个File类文件的做法比较规范,通用
   FileOutputStream fos1=new FileOutputStream(file,false);//true表示如果文件已经存在,没执行程序一次便往文件追加一次内容,否则会每一次的执行结果会覆盖文件上一次执行结果
   BufferedOutputStream bos=new BufferedOutputStream(fos1);//把fos1封装成具有缓冲功能的文件输出流
   FileOutputStream fos2=new FileOutputStream("demo2.txt");//用一个String构造一个FileOutputStream对象,String为文件名,这种构造方法也可以有两个参数,同上
   DataOutputStream dos=new DataOutputStream(fos2);//DataOutputStream提供了写入任意对象的能力
   String s1="How are you?";
   String s2="Fine.Thanks!";
   dos.writeBytes(s1+"   "+s2);
   fos1.write(s1.getBytes());//把字符串s1以字节流形式写入1.txt文件中
//   fos2.write(s2.getBytes());//把字符串s2以字节形式流写入2.txt文件中
   fos1.write(s2.getBytes());

  
  
   //读出文件内容
   FileInputStream fis=new FileInputStream(file);
   byte[] b=new byte[fis.available()];//创建一个字节数组,数组长度与file中获得的字节数相等
   while(fis.read(b)!=-1){
    System.out.println(new String(b));//打印出从file文件读取的内容
   }
  

public static void main(String[] args) {
        
        File file = new File("e:\\12332.txt");
        try {
            FileOutputStream fos = new FileOutputStream(file);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            DataOutputStream dos = new DataOutputStream(bos);
            
            FileInputStream fis = new FileInputStream(new File("e:\\12223.txt"));
            byte[] b = new byte[1024];
            int c = 0;
            while((c=fis.read(b))!=-1){
                dos.write(b, 0, c);;
            }
            fis.close();
            dos.close();
            bos.close();
            fos.close();
            System.out.println("运行到这");
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        
        
        
        
    }
    

FileInputStream以字节流读取文件

FileOutputStream以字节流读取文件