java基础十二:IO流

14 篇文章 0 订阅

1、File类
File类是java.io包下代表与平台无关的文件和目录的类。可操作文件、文件夹,但不可访问文件的内容。
linux环境的路径是/,windows的路径是//。
2、了解Java IO流
按方向:输入流和输出流
按操作的数据单元:字符流和字节流
按流的角色:节点流(低级流)和处理流(高级流)
在这里插入图片描述
3、字节流和字符流
字节流和字符流的操作方式几乎完全一样,区别只是操作的数据单元不同而已。
InputStream和Reader:读取的基类,读取的是byte和char。
OutputStream和Writer:写入的基类,写入的是byte和char。
4、处理流
处理流可以隐藏底层设备上节点流的差异,使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入输出功能,让节点流与底层的IO设备、文件交互。
5、转换流
输入/输出流体系中还提供了两个转换流,这两个转换流用于将字节流转换成字符流,其中InputStreamReader将字节输入流转换成字符输入流, OutputStreamWriter将字节输出流转换成字符输出流。
6、推回输入流
使用IO里面的推回输入流读取数据则可以把不想要的数据给推回到输入流的缓冲区中。
推回输入流主要为两个类: PushbackInputStream 和 PushbackReader
7、访问数组
ByteArrayOutputStream和ByteArrayInputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。
8、缓冲流
使用缓冲区的流,一般都会比没有缓冲区的流效率更高。拥有缓冲区的流被称为缓冲流,包括BufferedInputStream、BufferedOutputStream类和BufferedReader、BufferedWriter类。缓冲流把数据从原始流成块读入或把数据积累到一个大数据块后再成批写出,通过减少通过资源的读写次数来加快程序的执行。
9、访问字符串
StringReader:用来将字符串转换成字符输入流。
StringWriter:在内存中缓存读取到的所有字符串,然后使用通过toString方法一次性全部输出字符串。
10、访问管道(管道流)
管道流是用来在多个线程之间进行信息传递的Java流,被号称是最难使用的流,被使用的频率比较低,它提供了多线程间信息传输的一种有效手段。
管道流包括四个类PipedOutputStream/PipedWriter和PipedInputStream/PipedReader。其中PipedOutputStream/PipedWriter是写入者/生产者/发送者;PipedInputStream/PipedReader是读取者/消费者/接收者。
11、RandomAccessFile类
RandomAccessFile支持“随机访问”的方式,程序可以直接跳转到文件的任意地方来读写数据。
四种方式
“r”:以只读方式打开指定文件。如果试图对该RandomAccessFile执行写入方法,都将抛出 IOException 异常。
“rw”:以读、写方式打开指定文件。如果该文件尚不存在,则尝试创建该文件。
"rws”:以读、写方式打开指定文件。相对于"rw"模式,还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
“rwd”: 以读、写方式打开指定文件。相对于"rw"模式,还要求对文件的内容的每个更新都同步写入到底层存储设备。
ps:元数据是文件的附加属性,如文件大小、创建时间、所有者等信息。
12、对象序列化
对象的序列化(Serialize)指将一个Java对象写入IO流中,与此对应的是,对象的反序列化(Deserialize)则指从IO流中恢复该Java对象如果需要让某个对象支持序列化机制,则必须让它的类是可序列化的(serializable)。
实现:Serializable(常用)、ExternalizableJava
13、Properties类
Properties 类是Java中操作配置文件的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值