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中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...
随机推荐
- linux TCP Fast Open开启和测试
linux上要开启TCP Fast Open,内核版本至少为3.7.0, 且需要设置 /proc/sys/net/ipv4/tcp_fastopen 为3. 开启后,如果有连接进来,使用如下命令查看: ...
- sublime 非常好用的注释工具
Sublime在进行前端开发时非常棒,当然也少不了众多的插件支持,DocBlocker是在Sublime平台上开发一款自动补全代码插件,支持JavaScript (including ES6), PH ...
- VS2010中使用 SpecFlow + Selenium.WebDriver
安装(VS扩展.程序包) [工具]->[扩展管理器],安装SpecFlow [工具]->[库程序包管理]->[程序包管理器控制台] PM> Install-Package Sp ...
- 神奇的TextField(2)
var text_content:TextField=new TextField(); text_content.autoSize="left"; // text_content. ...
- HihoCoder 1158 : 质数相关 (最大独立集)
质数相关 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 两个数a和 b (a<b)被称为质数相关,是指a × p = b,这里p是一个质数.一个集合S被称为质数相关 ...
- bzoj 1220 跳蚤
Written with StackEdit. Description \(Z\)城市居住着很多只跳蚤.在\(Z\)城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以 ...
- map/reduce类简单介绍
在Hadoop的mapper类中,有4个主要的函数,分别是:setup,clearup,map,run.代码如下: protected void setup(Context context) thro ...
- 关于fpga的m9k的部分理解
1.控制信号包括时钟使能,读写使能,字节使能,地址使能,异步清零等 2.可配置为单端口,简单双端口,真双端口,fifo,rom,移位寄存器. 3.关于移位寄存器模式的介绍如下: 一个 ( w × m ...
- 7天学会HTML--HTML综述
一周学会HTML 1.HTML是什么? HTML 指的是超文本标记语言 (Hyper Text Markup Language) 2.HTML发展历程 HTML版本从1.0到4.0不断升级,其版本的规 ...
- Oracle 13c OEM 安装手册
1 安装准备工作 以下包已Redhat 为准,其他版的操作系统以官方手册为准. 1.1 Oracle Management Service 依赖如下包 glibc-comm ...