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) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...
随机推荐
- qt creator源码全方面分析(2-10-2)
目录 Creating Your First Plugin 创建一个插件项目 构建并运行插件 文件结构 qmake项目 插件元数据模板 插件类 头文件 源文件 Creating Your First ...
- lwip nd没有实现ra,contik有参考
lwip中关于nd的实现,没有路由器的功能,不能发送ra 在contiki中发现有nd发送ra的实现, contiki/core/net/ipv6/uip-ds6.c 在rs的接收处理中,发送soll ...
- 上周 GitHub 热点速览 vol.08:系统设计必看 The System Design Primer
作者:HelloGitHub-小鱼干 摘要:GitHub Trending 上周看点,老项目依旧抢眼,系统设计必看 Repo:The System Design Primer 周获 1k+ star, ...
- CNN目标检测系列算法发展脉络——学习笔记(一):AlexNet
在咨询了老师的建议后,最近开始着手深入的学习一下目标检测算法,结合这两天所查到的资料和个人的理解,准备大致将CNN目标检测的发展脉络理一理(暂时只讲CNN系列部分,YOLO和SSD,后面会抽空整理). ...
- bootstrap--font-face问题
在做仿天猫项目时,预期 已经用cdn加载bootstrap,但是不显示文字图标:实际情况: 发现是引用bootstrap的版本导致的.4.0.0版本及以后的css源码中找不到@font-face.可以 ...
- Netty——知识点总结
引言 Netty blablabla…… Netty 知识点
- UWP通过机器学习加载ONNX进行表情识别
首先我们先来说说这个ONNX ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型.它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互. ...
- django 定时任务 django-crontab 的使用
成功例子如下图: 1.前言 在做 django 开发需求时,多多少少都会遇到需要定时任务的功能,比如定时执行任务,检查订单之类的.可能是一段时间,比如每隔 10分钟执行一次,也可能是定点时间,比如 1 ...
- Elasticsearch编程操作
1.创建工程导入依赖 <dependency> <groupId>org.elasticsearch</groupId> <artifactId>ela ...
- SpringCloud入门学习
我相信,如果小伙伴们能来到这里,肯定对微服务有一定的认识. 我们之前创建web项目的时候,常见的有两种方式: 1).创建一个war包,然后放在servlet容器中运行(比如Tomcat等); 2).使 ...