3 操作字节

Wu Jun 2020-01-02 17:51:48
05 Java > 00 Java 基础 > 09 IO

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 文档。

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 文件

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 类来读写清单项。