103-字节流的练习-文件的复制

该博客介绍了如何使用Java的字节输入流 FileInputStream 和字节输出流 FileOutputStream 实现文件从C盘到D盘的复制。通过创建输入流读取源文件,然后创建输出流写入目标文件,利用read和write方法进行字节级别的数据传输,最后释放资源完成文件复制操作。
摘要由CSDN通过智能技术生成

好比一个jpg从一个地方到另一个地用字节流来完成

计算机上所有的文件都是以字节来存储的 

字节流其实可以读取任意文件

注意:要先从c盘将文件读取到内存中 FileInputStream   read()方法

在写到D盘去 用FileOutputStream  write()方法

文件复制练习:一读一写
明确
   数据源:
   数据的目的地:
 文件复制的步骤:
 1.创建一个字节输入流(对内存来说进入内存是输入)对象,构造方法中绑定要读取的数据源
 2.创建一个字节输出流对象,构造方法种绑定要写入的目的地
 3.使用字节输入流对象中的方法read读取文件
 4.使用字节输出流中的方法write 把读取到的字节写入到数据的目的地
 5.释放资源
package demo02;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/*
文件复制练习:一读一写
明确
   数据源:
   数据的目的地:
 文件复制的步骤:
 1.创建一个字节输入流(对内存来说进入内存是输入)对象,构造方法中绑定要读取的数据源
 2.创建一个字节输出流对象,构造方法种绑定要写入的目的地
 3.使用字节输入流对象中的方法read读取文件
 4.使用字节输出流中的方法write 把读取到的字节写入到数据的目的地
 5.释放资源
 */
public class Demo03CopyFile {
    public static void main(String[] args) throws IOException {
        // 1.创建一个字节输入流(对内存来说进入内存是输入)对象,构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("C:\\03_字节流读取文件的原理.bmp");
        // 2.创建一个字节输出流对象,构造方法种绑定要写入的目的地
        FileOutputStream fos = new FileOutputStream("d:\\1.bmp");
        // 3.使用字节输入流对象中的方法read读取文件  2种方法
        //一次读取一个字节写入一个字节的方式  这张图片可能几万个字节一个一个读一个一个写
       /* int len = 0;
        while ((len = fis.read()) != -1) {
         //4.使用字节输出流中的方法write 把读取到的字节写入到数据的目的地
            fos.write(len);
        }*/
        //使用数组缓冲进行多个字节的复制
        byte[]  bytes = new byte[1024];
        int len = 0 ;  //len返回的是每次读取字节的有效个数
        while((len=fis.read(bytes))!=-1){
            fos.write(len,0,len);
        }
        //5.释放资源  先关写的后关闭读的 因为写完一定读完了
        fos.close();
        fis.close();
    }
}

           注意len不只是返回2 返回的是每次读取的字节个数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值