IO流文件内容拷贝

将输入流的read(分段读取)方法接受的字节流直接写入输出流的指定文件中,通过方法的对接,完成文件内容的拷贝。

package cn.sxau.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * 将读取和写出文件对接实现文件内容的拷贝
 * @author 王村长
 *
 */
public class Copy {
 public static void main(String[] args) {
  //1.创建源(拷贝哪个文件,拷贝到哪个文件)
  File src=new File("abc.txt");//从这里拷贝
  File dest=new File("dest.txt");//拷贝到这里
   InputStream is=null;//提升作用域
  OutputStream os=null;
   //2.选择IO流
   try {
    is=new FileInputStream(src);//输入流
    os=new FileOutputStream(dest);//输出流

   //3.读取操作(分段读取)+写入操作
   //设定缓冲容器
    byte[] datas=new byte[3];//长度为3
    //接受长度
    int len=-1;
    //当读取到最后一个字节之后read返回-1
    while((len=is.read(datas))!=-1){
     os.write(datas, 0, len);
   }
   }catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }finally{//4.释放资源,先打开的后关闭
    try {
     if(is!=null){
     os.close();}
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    try {
     if(os!=null){
     os.close();}
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
      
  }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值