• IO流学习之字节流(二)


    字节流缓冲区:

    1、BufferedInputStream

    构造函数(以字节流为基础进行操作):

    常用方法:

    代码实例:

     1 package InputOutput;
     2 
     3 import java.io.BufferedInputStream;
     4 import java.io.FileInputStream;
     5 import java.io.IOException;
     6 
     7 public class BufferedInputStreamDemo {
     8     public static void main(String[] args) throws IOException {
     9         // 指定文件路径文件路径要准确,文件夹缺失或文件缺失会报错
    10         String path = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Reader/Ace.jpg";
    11         // 创建字节流输入对象
    12         FileInputStream in = new FileInputStream(path);
    13         // 创建缓冲区
    14         BufferedInputStream bin = new BufferedInputStream(in);
    15         // 写入数据,读到最后会返回-1
    16         // 方法一
    17 //        int flag1 = -1;
    18 //        while ((flag1 = bin.read()) != -1) {
    19 //            System.out.println(flag1);
    20 //        }
    21         // 方法二(推荐)
    22         byte[] b = new byte[1024];
    23         int flag2 = -1;
    24         while ((flag2 = bin.read(b, 0, b.length)) != -1) {
    25             System.out.println(flag2);
    26         }
    27 
    28     }
    29 }

    2、BufferedOutinputStream

    构造方法:

    主要方法:

    代码实例:

     1 package InputOutput;
     2 
     3 import java.io.BufferedOutputStream;
     4 import java.io.FileNotFoundException;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.OutputStream;
     8 
     9 public class BufferedOutStreamDemo {
    10     public static void main(String[] args) throws IOException {
    11         // 指定文件路径文件路径要准确,文件不存在会自动创建,但是路径不能缺失
    12         String path = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Writer/writer.txt";
    13         // 创建字节流输出对象,true代表在文本末尾添加数据,而不是每次写入都删除后重新写入数据
    14         FileOutputStream out = new FileOutputStream(path, true);
    15         // 创建输出缓冲区
    16         BufferedOutputStream Bout = new BufferedOutputStream(out);
    17         // 调用方法写入数据
    18         byte[] b = "你好,helloWorld".getBytes();
    19         Bout.write(b, 0, b.length);
    20         Bout.flush();
    21         Bout.close();
    22     }
    23 }

    3、缓冲区实现复制文件

    代码实例:

     1 package InputOutput;
     2 
     3 import java.io.BufferedInputStream;
     4 import java.io.BufferedOutputStream;
     5 import java.io.FileInputStream;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 
     9 public class BufferInOutputStreamDemo {
    10     public static void main(String[] args) throws IOException {
    11         // 指定文件路径文件路径要准确,文件夹缺失或文件缺失会报错
    12         String path1 = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Reader/Ace.jpg";
    13         // 创建字节流输入对象
    14         FileInputStream in = new FileInputStream(path1);
    15         // 创建缓冲区
    16         BufferedInputStream Bin = new BufferedInputStream(in);
    17         // 指定文件路径文件路径要准确,文件不存在会自动创建,但是路径不能缺失
    18         String path2 = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Writer/Ace.jpg";
    19         // 创建字节流输出对象,true代表在文本末尾添加数据,而不是每次写入都删除后重新写入数据
    20         FileOutputStream out = new FileOutputStream(path2, true);
    21         // 创建输出缓冲区
    22         BufferedOutputStream Bout = new BufferedOutputStream(out);
    23         // 调用方法读取数据
    24         int flag = -1;
    25         byte[] b = new byte[1024];
    26         while ((flag = Bin.read(b)) != -1) {
    27             // 调用方法写数据
    28             Bout.write(b, 0, flag);
    29             Bout.flush();
    30         }
    31         //关闭资源,先关写再关读
    32         Bout.close();
    33         Bin.close();
    34     }
    35 }
  • 相关阅读:
    java中string与json互相转化
    UVa 10125
    IOS开发之蘑菇街框架
    从头认识设计模式-策略模式-03-思考过程二:在每个类里面单独添加方法或者添加接口
    使用spring-loaded开源项目,实现java程序和web应用的热部署
    矩阵高速幂专题(二)
    EBS 第一个项目 学习总结 ---- 发运模块
    关于App程序猿泡沫
    Go 语言编程
    jar运行main函数的方法
  • 原文地址:https://www.cnblogs.com/Bernard94/p/11272733.html
Copyright © 2020-2023  润新知