zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    【原创】使用开源libimobiledevice盗取iphone信息
    【原创】Arduino制作Badusb实践
    【原创】Aduino小车玩法全记录
    【原创】Arduino入门基础知识总结
    【原创】Arduino、arm、树莓派与单片机
    【原创】PM3破解IC卡记录
    【转】反编译D-Link路由器固件程序并发现后门
    DDOS分布式拒绝服务
    XSS 初识
    针对企业级别渗透测试流程
  • 原文地址:https://www.cnblogs.com/Bernard94/p/11272733.html
Copyright © 2011-2022 走看看