1 DataInput 和 DataOutput 接口
1.1 DataInput 接口
DataInput
接口 write*
方法写二进制格式数据
DataInputStream 类实现了 DataInput 接口
DataInputStream in = new DataInputStream(new FileInputStream("employee.txt"));
1.2 DataOutput 接口
DataInput
接口 read*
方法读回二进制格式数据。
DataOutputStream 类实现了 DataOutput 接口
DataOutputStream out = new DataOutputStream(new FileOutputStream("employee.txt"));
2 随机访问文件
RandomAccessFile 类同时实现了 DataInput 和 DataOutput 接口。可以在文件中的任何位置查找或写入数据。
RandomAccessFile in = new RandomAccesFiel("employee.txt","r");//读入
RandomeAccessFile inOut = new RandomAcce("employee.txt","rw");//读入/写出
RandomAccessFile 有一个表示下一个将被读入或写出的字节所处位置的文件指针
2.1 seek(Long pos)
将文件指针设置到距文件开头pos个字节处。
2.2 getFilePointer
返回文件指针的当前位置。
3 ZIP 文档
3.1 读入
ZipInputStream 读入 ZIP 文档。
- getNextEntry:返回一个 ZipEntry 对象。
- getInputStream(ZipEntry ze):获取用于读取该项的输入流。
- closeEntry:读入下一项
ZipInputStream zin = new ZipInputStream(new FileInputStream(zipname));
ZipEntry entry;
while ((entry = zin.getNextEntry()) != null){
InputStream in = zin.getInputStream(entry);
//read the contents of in
zin.closeEntry();
}
zin.close();
3.1 写出
ZipOutputStream 写出到 ZIP 文件
- 创建ZipEntry对象,设置参数
- putNextEntry出新文件
- closeEntry
FileOutputStream fout = new FileOutputStream("test.zip");
ZipOutputStream zout = new ZipOutputStream(fout);
//for all files
{
ZipEntry ze = new ZipEntry(filename);
zout.putNextEntry(ze);
//send data to zout
zout.closeEntry();
}
zout.close();
JAR 文件只是带一个特殊项的 ZIP 文件,这个项称作清单。可以使用 JarInputStream 和 JarOutputStream 类来读写清单项。