JAVA常用API###io

IO
java.io标准的输入与输出
IO:指的是input输入 output输出
输入流:inputStream 输出流:outputStrea
java将流划分为两大类:
节点流:低级流,负责实际搬运数据的流
处理流:处理流不能单独存在,必须连接在其他的流上。目的是将连接的流中数据进行某种加工,也称高级流
实际开发中,我们经常串联若干高级流并最终串联到低级流,是的数据在读写是进行流水线式加工处理,这个过程也称为流的连接,是学习java.IO的精髓所在
java.io.FileInputStream文件输入流
java.io.FileOutputStream文件输出流
文件流默认的创建模式为覆盖写模式,即若文件已存在,那么创建文件流时,文件流会将文件全部清空。然后再将通过该流写出的数据写入到文件中
文件流是基于IO标准读写的,而IO的读写是[顺序读写]形式,只能向后读写,不能退回。raf是基于指针的随机读写
文件输出流提供了一个构造方法:
可以在传入一个boolean值,若该值为true,则为追加写模式
java.io.InputStreamReader
java.io.OutputStreamWriter转换流
java将流按照读写单位划分为字符流和字节流
字节流:读写的最小单位为字节,超类:InputStream,OutputStream
字符流:腹泻的最小单位为字符,超类:Reaner,Writer
字符流的底层代码还是写字节,只是他们会自动将字符与字节进行转换,因此字符流只适合读写文本类型数据
转换流的意义:
其他的字符流有一个要求,只能连在字符流上面。转换流是唯一一个能连载字符流上面的字符流,因此又称转换器

java.io.BufferedInputStream缓冲输入流
java.io.BufferedOutputStream缓冲输出流 byte[] data = new byte(1024*10)每次读取10字节
这两个类与byte字节数组功能相似
void fiush 清空内存 ()将缓冲区的字节一次性写出,频繁调用Fiush会导致频繁写出,效率降低,但是及时的写出可以提高数据的及时性,colse()缓冲流关闭时会自动调用一次fiush
java.io.BufferedReader缓冲字符输入流
java.io.BufferedWriter缓冲字符输出流
String readLine() BufferedReader提供方法顺序读取若干字符,换行为止,然后将换行符前的字符以字符串形式返回,若只有换行符,则返回空字符串,末尾返回值为null
java.io.ObjectInputStream对象输入流
java.io.ObjectOutputStream对象输入流
将对象实例写入文件中:
1.现将对象实例转化为一组字节
2.通过文件流将这组字节写入到文件中
对象输出流在写出对象时有一个要求:写出的对象必须实现可序列化接口,否则会抛出异常import.java.io.Serializable
对象经过对象流时,对象流会根据该对象的结构将其转化为字节,这个过程成为对象实例化
然后这组字节在经过文件流就被写入到文件中就是写入硬盘,这个数据就得以长久保存,这个过程成为数据持久化
Transient短暂的当一个属性被关键词Transient修饰后,那么这个类的实例进行序列化时,这个属性会被忽略,从而达到对象序列化的瘦身操作, 减少不必要的资源开销
java.io.printWriter具有自动行刷新的缓冲字符输出流
println换行输出

猜你喜欢

转载自blog.csdn.net/buxiangmafan/article/details/88676629