1. File类表示的是文件的信息,而不是文件的内容。new File时,并不创建文件,调用createFile()方法时,才真正的在硬盘上创建file。File也包含目录。
2. RandomAccessFile类表示随机访问的文件,每次new RandomAccessFile时,不用再调用其他方法就自动创建文件。
随机读取文件内容方便(比如等长记录,断点续传),但是也有局限RandomAccessFile只能仅限于操作文件,不能访问其他io设备,如网络、内存映像等
注意:它的write(int) 写入的是一个字节,若要写入int可以用writeInt(int)写入四个字节。wirteChar(),ReadChar()可解决正文问题
3.文本文件与二进制文件的区分:文本文件以外的文件为二进制文件.每个字节中的数据可以是0—255.文本文件是文件内存中的数据复制到文件中的存储形式。各种文本字符是一个或多个字节组成的,一个文件中的每个字节或每相邻的几个字节中数据都可以表示为某种字符,则成之为文本文件。文本文件是个特例。为了区别文本文件区别,文本文件以外的文件为二进制文件,如果一个文件专用于存储文本字符,而没有包含字符以外的其他数据。则称之为文本文件,除此以外的文件为二进制文件。
4.FileOutputStream的write写入一个字节的方法,不会调用flush刷新,但是写入字节数组的write会调用flush。FileWrite使用write写入写入字符串,内部没有自动调用flush,刷新。
5.管道流主要完成线程之间的通信.实现各个程序模块之间的松耦合通信。
6.ByteArrayInputStream、ByteArrayInputStream,用于以io流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文件或者内存映像文件的功能。
7.字符编码:utf-8 不会出现内为0x00字节、便于应用程序检测数据在传输过程中是否发生了错误,通过前面的几个字节决定。、直接处理使用ascii码的英文文档,
8.switch case内部不能定义变量,否则报错!
9.过滤流与包装类:DataOutputStream、DataInputStream,BufferedInputStream、BufferedInputStream、BufferedReader、BufferedWrite,PrintStream、PrintWriter通过其他同类流构造。其实就是装饰器模式。
ObjectInputStream、ObjectOutputStream读写对象(必须实现serializable接口),对像中的transient和static类型的成员变量不会被读取和写入。能处理不同操作系统的差异。
InputStreamReader、OutputStreamWriter:字节字符相互转化。一般不直接用这两个类而是包装成BufferedWriter、BufferedReader来使用,这样效率会更高。
10.Process实现主进程与子进程之间的通信