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中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...
随机推荐
- MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545} span.s1 {font: ...
- GCC参数使用
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言, ...
- PHPCMS V9调用父栏目 顶级父栏目的代码
一.调用父栏目 首先是列表页和二级栏目页list.html {$CATEGORYS[$top_parentid][catname]} //顶级父栏目名称 {$CATEGORYS[$CAT[parent ...
- 【工作】to-do-list
当你不确定的时候,你就把你所在的工作做好,所在的你不愿意的行业做好,所谓的自由选择,它本身不自由的,不自由过程当中,如何你把它做好,就做人生的一个经历,人生的一个积累.-- 王石 TODO
- 【解题报告】牡丹江现场赛之ABDIK ZOJ 3819 3820 3822 3827 3829
那天在机房做的同步赛,比现场赛要慢了一小时开始,直播那边已经可以看到榜了,所以上来就知道A和I是水题,当时机房电脑出了点问题,就慢了好几分钟,12分钟才A掉第一题... A.Average Score ...
- 5,基于关系和超链接的 API
Tutorial 5: Relationships & Hyperlinked APIs At the moment relationships within our API are repr ...
- 记一次RESTful调试过程
1. 为什么前台怎么调用后台,都是跳到页面不存在. 因为已经改为RESTful,保存按钮的type还是submit: 2. 改成buttong之后,设置onclick="update()“, ...
- javabrideg的使用实践
(1)进入这个网站http://sourceforge.net/projects/php-java-bridge/files,选择Binary package,然后选择最新的版本Php-java-br ...
- TPS和QPS区别
TPS和QPS区别 http://blog.csdn.net/kobejayandy/article/details/9374747
- FPGA论剑(续)
25年之后,第二次华山论剑之时,天下第一的王重阳已然仙逝,郭靖少年英杰刚过二十岁,接东邪黄药师.北丐洪七公300招不败,二人默认郭靖天下第一.南帝段智兴因为出家,法号“一灯”,早已看破名利,故没有参加 ...