字节流和字符流的区别

字节流、字符流
流核心:读/写

java IO 标准的输入与输出
java将读写按照方向划分为输入与输出
输入:从外界到程序的方向,用于读(获取数据)
输出:从程序到外界的方向,用于写(发送数据)

流的定义:

java将读写描述为"流" stream
可以想象为水流,电流。是一种顺序的向同一方向移动。只不过
我们这里的流中流动的是字节。

流的连接定义:

java将流划分为两类:
节点流,也称为低级流。是真实连接程序与另一端的"管道",负责
实际搬运数据。读写一定是建立在低级流的基础上进行的。

处理流,也称为高级流。不能独立存在,必须连接在其他流上,
目的是当数据流经当前高级流时对其做某些加工处理。是的我们在
读写的过程中对数据完成复杂操作,简化我们的读写工作。

流的超类

java.io.InputStream是一个抽象类,同时也是所有字节输入流
的超类,里面定义了所有字节输入流都要具备的读取字节的方法。

java.io.OutputStream是所有字节输出流的超类。

流的分类:

文件流:java.io.FileInputStream和FileOutputStream
文件流是一对低级流,继承自InputStream和OutputStream
是连接文件的流,用于对文件进行读写数据操作。功能上与
RandomAccessFile一致,但是读写方式不同,RAF是基于指针
的随机读写方式,而文件流是基于标准IO的顺序读写方式。
灵活度不如RAF,但是基于IO的流连接可以完成很多复杂数据的
读写操作。

字节流

低级输入流: 读取
FileInputStream:
低级输出流: 写入
FileOutputStream:

**BufferedInputStream:为另一个输入流添加一些功能,在创建BufferedInputStream时,会创建一个内部缓冲区数组,用于缓冲数据。
BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。 **

对象流:
java.io.ObjectOutputStream

对象流:
java.io.ObjectInputStream

字符流

字符流的类通常以reader和writer结尾

字符转化流

InputStreamReader 的作用是把 InputStream 转换成 Reader
OutputStreamWriter 的作用是把 OutputStream 转换成 Writer

字符缓冲流

BufferedReader:从字符输入流中读取文本,缓冲各个字节,从而实现字符、数组和行的高效读取。
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

流的相关API

FILE文件 exists(存在) createNewFile(创建新文件) delete(删除文件) getName(获取名字)

getAbsolutePath(获取绝对路径) canRead(是否可读) canWrite(是否可写) isFile(是文件)

**isDirectory(是目录) listFiles(列表文件) mkdir(创建目录) accept(File file 接受文件) **

indexOf(查找字符或者从头第一个出现的字符) startsWith(从…开始) FileFilter文件管理

FileInputStream文件输入流:读取流 read(读取) close(关闭) write(写入) getBytes(UTF-8)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值