美文网首页Java 杂谈Java学习笔记
IO流——字节流4种copy方式

IO流——字节流4种copy方式

作者: 扒块腹肌 | 来源:发表于2017-01-23 00:17 被阅读124次

JAVA基本IO流框架

Java常用IO流.jpg

字节流整体可分为带缓冲区的流和不带缓冲区的流
可分为逐字节复制的流和逐块复制的流
(块其实就是指byte)
常用的一共有4种复制方式!

示例:复制源文件文本数据到目标文本中
以下列出主要的代码

//逐字节复制

//定义file类分别指向源文件和目标文件
File src_file1 = new File("from//Test.java");
File des_file1 = new File("To//Test.java");
        
//从传入的中的文件对象中获得读取字节或输出字节
FileInputStream fis = new FileInputStream(src_file);
FileOutputStream fos = new FileOutputStream(des_file);

//调用read()方法,将文本内容逐字节读取到read中
int read;
while ((read = fis.read()) != -1)
    {//调用write方法逐字节输出到目标文件中
        fos.write(read);
    }

//关闭流
fis.close();
fos.close();
//逐块复制

//定义file类分别指向源文件和目标文件
File src_file1 = new File("from//Test.java");
File des_file1 = new File("To//Test.java");
        
//从传入的中的文件对象中获得读取字节或输出字节
FileInputStream fis = new FileInputStream(src_file);
FileOutputStream fos = new FileOutputStream(des_file);

//定义一个能容纳1024个字节的数据byte数组来接收要读取的文本数据
byte[] bs = new byte[1024];
//定义read表示接收的字节长度
int read;
//从输入流中将最多 1024个字节的数据读入一个 byte 数组中
while ((read = fis.read(bs)) != -1)
    {//将 byte 数组中从0 开始的 read 个字节写入此目标文件中
        fos.write(bs, 0, read);
    }

//关闭流
fis.close();
fos.close();
//带缓冲区的逐字节复制

//定义file类分别指向源文件和目标文件
File src_file1 = new File("from//Test.java");
File des_file1 = new File("To//Test.java");
        
//从传入的中的文件对象中获得读取字节或输出字节
FileInputStream fis = new FileInputStream(src_file);
FileOutputStream fos = new FileOutputStream(des_file);

//包装流,把操作文件的流增加缓冲区的功能(直接覆盖了文件流)
BufferedInputStream bis =  new BufferedInputStream(fis);;
BufferedOutputStream bos = new BufferedOutputStream(fos);
    
//用read逐字节接收数据  
int read;
//调用read()方法逐字节读取数据到缓冲区中
while ((read = bis.read()) != -1)
    {//write方法将缓冲区中的数据逐字节输出到文本文件中
        bos.write(read);
    }

//关闭流,释放系统资源
bis.close();
bos.close();

//带缓冲区的逐块复制

//定义file类分别指向源文件和目标文件
File src_file1 = new File("from//Test.java");
File des_file1 = new File("To//Test.java");
        
//从传入的中的文件对象中获得读取字节或输出字节
FileInputStream fis = new FileInputStream(src_file);
FileOutputStream fos = new FileOutputStream(des_file);

//包装流,把操作文件的流增加缓冲区的功能(直接覆盖了文件流)
BufferedInputStream  bis =  new BufferedInputStream(fis);;
BufferedOutputStream  bos = new BufferedOutputStream(fos);
    

//定义一个能容纳1M个字节的数据byte数组来接收要读取的文本数据
byte[] bs = new byte[1024 * 1024];
//len表示要写入的字节数。 
int len = 0;
//调用read()方法逐字块读取byte数组到缓冲区中(每次读1M)
while ((len = bis.read(bs, 0, 1024)) != -1)
    {//将指定 byte 数组中从0 开始的 len 个字节写入此缓冲的输出流
        bos.write(bs, 0, len);
    }

//关闭流释放操作系统资源,包含flush的功能
//bos.flush()将缓冲区的数据冲入到输出文本中,只有output需要冲出
bis.close();
bos.close();

相关文章

  • IO流——字节流4种copy方式

    JAVA基本IO流框架 字节流整体可分为带缓冲区的流和不带缓冲区的流可分为逐字节复制的流和逐块复制的流(块其实就是...

  • 2020-06-30【IO和字节流】

    IO流概述 IO流概述 字节流写数据 写数据的三种方式 字节流写数据的两个小问题 异常处理 字节流读数据 练习

  • java io之字节流

    java的IO流按照流向可分为输入流、输出流 按照处理方式 字节流、字符流本文主要记载字节流 字节流 inpu...

  • IO流简介

    io流的作用:读写设备上的数据,硬盘文件、内存、键盘、网络.... io流分类:输入流和输出流,字节流和字符流 字...

  • java 复制图片

    在学习了java IO 的基本理论之后做如下总结:1、java的IO操作分为字节流和字符流两种方式。字节流可以传输...

  • Java中常用的字节流和字符流

    IO流(输入流、输出流) 字节流、字符流 1.字节流: InputStream、OutputStream Inpu...

  • java io 流

    java io 流 io 流总览 io 流主要提供四个接口 InputStream: 输入字节流 OutputSt...

  • Java中的IO流

    Java中的IO流分类 输入IO流输入字节流(InputStream)处理流缓冲流(BufferedInputSt...

  • IO流

    IO流 Input:输入流,用于读取数据 Output:输出流,用于写数据 IO分类 字节流 字节流就是读和取都是...

  • Java I/O 输入输出流(四)——字节流之文件输入流File

    字节流之文件输入流FileInputStream-1 它就是IO流(输入流、输出流) 又分为字节流,字符流 字节流...

网友评论

    本文标题:IO流——字节流4种copy方式

    本文链接:https://www.haomeiwen.com/subject/tkoobttx.html