一、RandomAccessFile
是IO的包类,从Obect类直接继承而来,只能对文件操作,可以进行读和写操作;在其中可以写入,模式,为 r(只读),w(只写),rw(读写),当且仅当使用模式r时,文件会异常
在JDK1.4以后,被memory-mapped files取代
使用方法:
RandomAccessFile raf = new RandomAccessFile("文件","模式")
二、Properties
配置文件,之前在程序国际化中讲过,但是此时在IO流之中,不仅可以读取,还可以修改
基本方法:
1)getProperty():用指定的键获取值
2)load():从输入流中获取键值对
3)setProperty():用来设置键值对(修改配置文件)
4)store():将程序中的键值对加载到Properties文件中
5)clear():清楚所有键值对
三、文件压缩
ZipOutputStream类,用来实现文件的压缩
用法:
ZipOutputStream(OutputStream out)//创建压缩流
void putNextEntry(ZipEntry e)//开始写入
ZipEntry (String name)//命名
四、文件解压
ZipInputStream类,用来实现文件·的解压缩
用法:
ZipInputStream(InputStream in)//创建解压流
ZipEntry getZipEntry()//解压到某个位置
五、装饰者模式
在IO流之中,上层的流都可以将自己的对象作为参数传入到下层流或者是同层流之中,依靠这点。就可以设计装饰者模式,依靠这种模式来实现继承才能实现的程序
这种设计模式可以充分的减轻继承带来的类爆炸的问题,当增加某一个指数时,如果之间的组合次数很多,并由此来创建类,就有可能引发类爆炸问题
六、常见字符编码
1、iso8859-1:属于单字节编码,做多表示0~255个字符范围,因此常在英文模式下使用
2、GBK/GBK2312:中文的国际编码专门在汉字中使用,是双字节编码,前者的汉字范围要大一些
3、Unicode:Java的编码格式,最标准的,使用16进制编码,但是不兼容iso8859-1
4、UTF:兼容iso8859-1编码,但是是不定长的