IO流学习之字节流(二)
字节流缓冲区:
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流学习之字节流(二)的更多相关文章
- IO流学习之字节流(一)
IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数 ...
- 关于java读取文件IO流学习总结(二)
今天网上随意逛了逛,某处看到关于文件的操作,描述的不错,加深了对于文件操作的理解,在此分享给大家.希望能够有所收获. java读取txt文件内容: 可以作如下理解: 1. 首先获得一个文件句柄.Fil ...
- IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo
在之前的学习笔记(http://blog.csdn.net/megustas_jjc/article/details/72853059)中,FileWriter与FileReader的Demo使用的中 ...
- Java IO流学习
Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...
- Java IO流学习总结(1)
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...
- Java基础之IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...
- Java IO流学习总结一:输入输出流
Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...
- Java基础-IO流对象之字节流(Stream)
Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...
随机推荐
- 【LaTeX】记录一下LaTeX的安装和使用
由于排版论文的需要,了解了一些LaTeX的相关内容,下面简单记录关于LaTeX的安装和使用 维基百科: LaTeX(/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk/或/ˈleɪtɛk/),文字形式写作L ...
- finished with exit code -1073740791 (0xC0000409)解决方案
1.在用keras框架跑NER的train时,而且只是在用了keras_contrib.layers的CRF时出现问题: 遇到无错跳出finished with exit code -10737407 ...
- [转]java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity. 所有对象的非同步 方法都能够在任意时刻被任意线 ...
- Java HashMap 四种遍历方式
HashMap遍历方式包含以下4种: 1.遍历KeySet,再通过Key来getValue. 2.使用entrySet的迭代器. 3.foreach entrySet的方式. 3.foreache v ...
- pytorch之 classification
import torch import torch.nn.functional as F import matplotlib.pyplot as plt # torch.manual_seed(1) ...
- python图片处理PIL
一.PIL介绍 PIL中所涉及的基本概念有如下几个:通道(bands).模式(mode).尺寸(size).坐标系统(coordinate system).调色板(palette).信息(info)和 ...
- Github搜索技巧
按仓库名称.说明或自述文件内容搜索 通过 in 限定符,您可以将搜索限制为仓库名称.仓库说明.自述文件内容或这些的任意组合. 如果省略此限定符,则只搜索仓库名称和说明. 限定符 示例 in:name ...
- 通配符与标签!important的背景展示,也是让我怀疑人生了
是谁在耳边对我说!important提升权重优先级,只为这一句,我用了3600s研究通配符与标签!important的背景展示,也是让我怀疑人生了!选择器权值:标签选择器1,类选择器和伪类选择器:10 ...
- Linux运维----03.制作trove-mysql5.7镜像
安装mysql yum install http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm yum remove m ...
- 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 ...