字节流缓冲区:

1、BufferedInputStream

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

常用方法:

代码实例:

 package InputOutput;

 import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException; public class BufferedInputStreamDemo {
public static void main(String[] args) throws IOException {
// 指定文件路径文件路径要准确,文件夹缺失或文件缺失会报错
String path = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Reader/Ace.jpg";
// 创建字节流输入对象
FileInputStream in = new FileInputStream(path);
// 创建缓冲区
BufferedInputStream bin = new BufferedInputStream(in);
// 写入数据,读到最后会返回-1
// 方法一
// int flag1 = -1;
// while ((flag1 = bin.read()) != -1) {
// System.out.println(flag1);
// }
// 方法二(推荐)
byte[] b = new byte[];
int flag2 = -;
while ((flag2 = bin.read(b, , b.length)) != -) {
System.out.println(flag2);
} }
}

2、BufferedOutinputStream

构造方法:

主要方法:

代码实例:

 package InputOutput;

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

3、缓冲区实现复制文件

代码实例:

 package InputOutput;

 import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class BufferInOutputStreamDemo {
public static void main(String[] args) throws IOException {
// 指定文件路径文件路径要准确,文件夹缺失或文件缺失会报错
String path1 = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Reader/Ace.jpg";
// 创建字节流输入对象
FileInputStream in = new FileInputStream(path1);
// 创建缓冲区
BufferedInputStream Bin = new BufferedInputStream(in);
// 指定文件路径文件路径要准确,文件不存在会自动创建,但是路径不能缺失
String path2 = "E:/JavaCodeDemo/InputOutput/FileXXXStream/Writer/Ace.jpg";
// 创建字节流输出对象,true代表在文本末尾添加数据,而不是每次写入都删除后重新写入数据
FileOutputStream out = new FileOutputStream(path2, true);
// 创建输出缓冲区
BufferedOutputStream Bout = new BufferedOutputStream(out);
// 调用方法读取数据
int flag = -;
byte[] b = new byte[];
while ((flag = Bin.read(b)) != -) {
// 调用方法写数据
Bout.write(b, , flag);
Bout.flush();
}
//关闭资源,先关写再关读
Bout.close();
Bin.close();
}
}

IO流学习之字节流(二)的更多相关文章

  1. IO流学习之字节流(一)

    IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数 ...

  2. 关于java读取文件IO流学习总结(二)

    今天网上随意逛了逛,某处看到关于文件的操作,描述的不错,加深了对于文件操作的理解,在此分享给大家.希望能够有所收获. java读取txt文件内容: 可以作如下理解: 1. 首先获得一个文件句柄.Fil ...

  3. IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo

    在之前的学习笔记(http://blog.csdn.net/megustas_jjc/article/details/72853059)中,FileWriter与FileReader的Demo使用的中 ...

  4. Java IO流学习

    Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...

  5. Java IO流学习总结(1)

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...

  6. Java基础之IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  7. Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

    在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...

  8. Java IO流学习总结一:输入输出流

    Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...

  9. Java基础-IO流对象之字节流(Stream)

    Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...

随机推荐

  1. 【LaTeX】记录一下LaTeX的安装和使用

    由于排版论文的需要,了解了一些LaTeX的相关内容,下面简单记录关于LaTeX的安装和使用 维基百科: LaTeX(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/),文字形式写作L ...

  2. finished with exit code -1073740791 (0xC0000409)解决方案

    1.在用keras框架跑NER的train时,而且只是在用了keras_contrib.layers的CRF时出现问题: 遇到无错跳出finished with exit code -10737407 ...

  3. [转]java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?

    在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity. 所有对象的非同步 方法都能够在任意时刻被任意线 ...

  4. Java HashMap 四种遍历方式

    HashMap遍历方式包含以下4种: 1.遍历KeySet,再通过Key来getValue. 2.使用entrySet的迭代器. 3.foreach entrySet的方式. 3.foreache v ...

  5. pytorch之 classification

    import torch import torch.nn.functional as F import matplotlib.pyplot as plt # torch.manual_seed(1) ...

  6. python图片处理PIL

    一.PIL介绍 PIL中所涉及的基本概念有如下几个:通道(bands).模式(mode).尺寸(size).坐标系统(coordinate system).调色板(palette).信息(info)和 ...

  7. Github搜索技巧

    按仓库名称.说明或自述文件内容搜索 通过 in 限定符,您可以将搜索限制为仓库名称.仓库说明.自述文件内容或这些的任意组合. 如果省略此限定符,则只搜索仓库名称和说明. 限定符 示例 in:name ...

  8. 通配符与标签!important的背景展示,也是让我怀疑人生了

    是谁在耳边对我说!important提升权重优先级,只为这一句,我用了3600s研究通配符与标签!important的背景展示,也是让我怀疑人生了!选择器权值:标签选择器1,类选择器和伪类选择器:10 ...

  9. Linux运维----03.制作trove-mysql5.7镜像

    安装mysql yum install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm yum remove m ...

  10. Linux_simpl shell-利用Shell脚本for循环输出系统中的用户及其Shell

    [root@localhost ~]# vim user.sh 1 #!/bin/bash 2 for i in `cut -d ":" -f1 /etc/passwd`; 3 d ...