读取二进制数据 DataInput 和 DataOutput 接口
DataOutput接口定义了用于以二进制格式写数组,字符, boolean, 和字符串的方法 如:writeChars 等等
特点:输入和输出都是采用二进制格式 ,虽然看不懂, 但类型给定后,占用空间固定, 并且速度更快.
java中 ,所有的值的模式都是按照高位在前的模式写出,不管用何种处理器, 这使得Java数据文件可以独立于平台.
writeUTF 方法使用修订版的8位Unicode转换格式写出字符串.
DataInputStream 类实现了DataInput接口,为了从文件中读入二进制数据, 可以将DataInputStream 与某个字节源相组合,例如
FileInputStream
DataInputStream in = new DataInputStream(new FileInputStream("employee.dat"));
随机访问文件
RandomAccessFile 类可以在文件中的任何位置查找或写入数据.磁盘文件都是随机访问的,但是网络套接字通信的输入/输入流却不是.
可以随机的打开一个文件, 用于读入或者同时用于读写, 可以使用字符串"r"或者 "rw"作为构造器的第二个参数来指定这个选项.
RandomAccessFile in = new RandomAccessFile("employee.dat","r");
RandomAccessFile inOut =new RandomAccessFile("employee.dat","rw")
随机访问有一个将被读入或写出的字节所处位置的文件指针, seek方法可以用来将这个指针设置到文件中的任意位置.seek参数是一个long类型的整数, 它的值位于0到文件按照字节来度量的长度之间.
要确定文件中字节总数,可以使用length方法,而记录总数则是用字节总数除以每条记录的大小
long nbytes = in.length
int nrecords =(int)(nbytes/ RECORD_SIZE)
整数和浮点数在二进制格式中都具有固定尺寸, 但是处理字符串 需要两个固定助手方法
writeFixedString 写出从字符串开头开始的指定数量的码元
readFixedString 从输入流中读入字符,直至读入size 个码元
ZIP文档
ZIP文档以压缩的格式存储了一个或多个文件,每个ZIP文档都有一个头 ,包含诸如每个文件名字和所使用的压缩方法等信息.
java中使用 ZipInputStream 来读入Zip文档. 浏览文档中每个单独的项 , getNextEntry 方法可以返回一个描述这些项的
ZipEntry类型的对象.
ZipInputStream zip = new ZipInputStream(new FileInputStream(zipname));
要写出ZIP文件 ,可以使用ZipOutputStream
注意:JAR文件 只是带一个特殊项的zip文件,这个项称作清单.你可以使用JarInputStream 和 JarOutputStream 类来读写清单项.
网友评论