【笔记整理】

一:什么是IO?

JAVA IO:

I:指得是Java的输入。

o:指的是Java的输出。

当从外面读取数据到自己这里就用输入(InputStream/Reader),

向外面写数据就用输出(OutputStream/Writer).

Stream:Java中将数据的输入输出抽象为流,流是一组有顺序的,单向的,有起点和终点的数据集合。

按数据单元又分为字节流和字符流。

先确定一个概念:一切皆字符(任何数据都是以二进制的形式储存的)。

字节流:1byte(8bit)作为一个数据单元,数据流中最小的数据单元是字节。

字符流:1char(16bit)作为数据单元,数据流中最小数据单元是字符。

java PO CO什么意思 java.io是什么意思_java PO CO什么意思


字节流的抽象基类:

InputStream

OutputStream

字符流的抽象基类:
Reader;
Writer

由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀,如InputStream的子类FileInputStream,Reader的子类FileReader。

java PO CO什么意思 java.io是什么意思_数据_02


按节点方式分:节点流和处理流

节点流:真正直接处理数据。
有文件流:FileInputStream,FileOutputStrean,FileReader,FileWriter
数组流:ByteArrayInputStream,ByteArrayOutputStream,CharArrayReader,CharArrayWriter
字符串流:StringReader,StringWriter
管道流:PipedInputStream,PipedOutputStream,PipedReader,PipedWrite

处理流:装饰加工节点。
有缓存流:BufferedImputStrean,BufferedOutputStream,BufferedReader ,BufferedWriter
转换流:InputStreamReader,OutputStreamWriter
数据:DataInputStream,DataOutputStream

File 类:文件和目录路径名的抽象表示。

File 直接继承于Object,实现了Serializable接口和Comparable接口。实现Serializable接口,意味着File对象支持序列化操作。而实现Comparable接口,意味着File对象之间可以比较大小;File能直接被存储在有序集合(如TreeSet、TreeMap中)。

java PO CO什么意思 java.io是什么意思_数据_03


创建文件名

java PO CO什么意思 java.io是什么意思_Java_04

File的构造方法:

java PO CO什么意思 java.io是什么意思_Java_05


使用:

java PO CO什么意思 java.io是什么意思_java_06


结果为:

java PO CO什么意思 java.io是什么意思_java_07


相对路径和绝对路径:

绝对路径:永远指的是固定位置文件夹,从盘符开始,是一个完整的路径,例如:

java PO CO什么意思 java.io是什么意思_数据_08


相对路径:相对于项目目录路径,是一个不完整的便捷路径,在Java开发中常用

java PO CO什么意思 java.io是什么意思_Java_09

序列化技术和反序列话技术:

序列化技术:将程序的对象直接一文件形式存储起来,是按照对象的内存中存储的字符序列。

反序列技术:反过来。

想要序列化要有标记,一个接口

java PO CO什么意思 java.io是什么意思_子类_10


这个叫标记接口,就是为了告诉BOOK属于Sreializable的子,其实没有提供任何的抽象方法。

这样就可以运行了,然后出现这个,这个不是你能看懂的。

输出结果:

java PO CO什么意思 java.io是什么意思_java PO CO什么意思_11