java基础之io流总结三:字节流读写
字节流读写适用于任何文件,包括图片,视频等。
基本字节流
一次读一个字节和一次读一个字节数组
FileInputStream fis = new FileInputStream(path);
//一次读一个字节
int by;
//read()==-1则代表文件读到了末尾
while ((by = fis.read()) != -1) {
System.out.print((char) by);
} //一次读一个字节数组 并转换成字符串
byte[] bytes = new byte[1024];
int len;
//read()==-1则代表文件读到了末尾
while ((len = fis.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len));
len = fis.read(bytes);
}
//close
fis.close();
一次写一个字节和一次写一个字节数组
FileOutputStream fos = new FileOutputStream(path);
// 写入方法
fos.write(65);
byte[] bytes = { 1, 2, 3, 4, 5 };
fos.write(bytes);
// 写入字符串
byte[] bys = "字节流输出写入文件2".getBytes();
fos.write(bys);
// 写字符串一部分
fos.write(bys, 0, 4); // 换行写入
for (int i = 0; i < 10; i++) {
fos.write("张学友".getBytes());
fos.write("\r\n".getBytes());
}
// 追加写入 实例化FileOutputStream的时候 构造方法 选择下面这个带true的
fos = new FileOutputStream("a.txt", true);
//
// 换行写入
for (int i = 0; i < 10; i++) {
fos.write("刘德华".getBytes());
fos.write("\r\n".getBytes());
} // close
fos.close();
复制文件:也就是读出来直接写入到新文件中
// 首先读
FileInputStream fis = new FileInputStream(inputPath);
// 然后写
FileOutputStream fos = new FileOutputStream(outPutPath);
int by;//一次读写一个字节
while ((by = fis.read()) != -1) {
fos.write(by);
} // 一次读写一个字节数组
byte[] bys = new byte[1024];
int len;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
}
fis.close();
fos.close();
缓冲区字节流
一次读一个字节和一次读一个字节数组
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
// 单字节
int by;
while ((by = bis.read()) != -1) {
System.out.print((char)by);
}
// 字节数组
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
System.out.println(new String(bys, 0, len));
}
bis.close();
一次写一个字节和一次写一个字节数组
// 写入 new FileOutputStream(path, true) 第二个参数设置为true代表是在文件中追加写入
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path, true));
bos.write(64);
bos.write("银鞍照白马\r\n".getBytes());
bos.write("飒沓如流星\r\n".getBytes());
bos.close();
复制文件:也就是读出来直接写入到新文件中
// 缓冲区字节流一次读写一个字节
BufferedOutputStream bos1 = new BufferedOutputStream(new FileOutputStream(outPutPath));
BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(inputPath));
int by2;
while ((by2 = bis1.read()) != -1) {
bos1.write(by2);
}
bos1.close();
bis1.close();// 缓冲区字节流一次读写一个字节数组
BufferedInputStream bis2 = new BufferedInputStream(new FileInputStream(inputPath));
BufferedOutputStream bos2 = new BufferedOutputStream(new FileOutputStream(outPutPath));
byte[] bys4 = new byte[1024];
int len4;
while ((len4 = bis2.read(bys4)) != -1) {
bos2.write(bys4, 0, len4);
}
bos2.close();
bis2.close();
一次读写一个字节数组要比一次读写一个字节的速度快
缓冲区字节流一次读写一个字节数组比基本字节流一次读写一个字节数组速度快
java基础之io流总结三:字节流读写的更多相关文章
- java基础之IO流(一)字节流
java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...
- java基础之IO流(二)之字符流
java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...
- Java基础之IO流整理
Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...
- Java中的IO流(三)
上一篇<Java中的IO流(二)>把学习Java的字符流以及转换流作了一下记录,从本篇开始将把IO流中对文件或文件夹操作的对象File类的学习进行一下记录. 一,File类的构造函数及字段 ...
- java基础44 IO流技术(输出字节流/缓冲输出字节流)和异常处理
一.输出字节流 输出字节流的体系: -------| OutputStream:所有输出字节流的基类(抽象类) ----------| FileOutputStream:向文件输出数据的输出字节流(把 ...
- Java基础:IO流之字节流和字符流
1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端 ...
- java基础43 IO流技术(输入字节流/缓冲输入字节流)
通过File对象可以读取文件或者文件夹的属性数据,如果要读取文件的内容数据,那么我们就要使用IO技术. 一.输入字节流 输入字节流的体系: -------| InputStream:所有输入字节流的 ...
- java基础之 IO流
javaIO流 IO流 : (input output) 输入输出流 :输入 :将文件读到内存中 输出:将文件从内存输出到其他地方. IO技术的作用:主要就是解决设备和设备之间的数据传输问题 ...
- 【java基础】]IO流
IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...
随机推荐
- Zookeeper在Dubbo中的作用及Zk集群的选举原理
转自 : https://blog.csdn.net/zh15732621679/article/details/80723358
- 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS
如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...
- Apache中 RewriteCond 规则参数介绍 转
摘要: RewriteCond指令定义了规则生效的条件,即在一个RewriteRule指令之前可以有一个或多个RewriteCond指令.条件之后的重写规则仅在当前URI与Pattern匹配并且满足此 ...
- SSH实现远程控制
SSH(Secure Shell)是一种能够提供安全远程登录会话的协议,使用ssh可以在远程linux中执行命令. sshd服务提供两种安全验证的方法: (1)基于口令的安全验证:经过验证帐号与密码即 ...
- 微型 Python Web 框架: Bottle
微型 Python Web 框架: Bottle 在 19/09/11 07:04 PM 由 COSTONY 发表 Bottle 是一个非常小巧但高效的微型 Python Web 框架,它被设计为仅仅 ...
- Socket通信简单实例(WCF调用Socket)
服务端: 控制台程序监听 /// <summary> /// Server /// </summary> class Program { static Socket serve ...
- LA3263 That Nice Euler Circuits
题意 PDF 分析 欧拉定理:设平面内顶点数.边数.面数分别为\(V,E,F\),则\(V+F-E=2\). 枚举每对线段求交点,注意去重. 另外注意第n个端点和第一个端点重合. 时间复杂度\(o(T ...
- Python中if __name__ == 'main' 的作用和原理
参考网址:http://mp.weixin.qq.com/s/kxxhOQ7KB_VMwWeUENX7OQ t1.py: print('Loving Python') def main(): prin ...
- git常用命令小结
1.ssh连接方式 公钥生成ssh-keygen -t rsa -C "764432054@qq.com"在用户家目录下的.ssh目录下生成 id_rsa ,id_rsa.pub ...
- RHEL6 64位ASM方式安装oracle 11gR2(二)
本文转载自:http://vnimos.blog.51cto.com/2014866/1221377 三.安装数据库软件 1 2 3 4 5 6 7 8 # unzip -d /stage/ linu ...