输入与输出

输入与输出

1.输入/输出流

1.1 输入/输出流概念

输入流:
输出流:
InputStream/OutputStream:read(),write(int b)均为阻塞方法 应该被正确关闭。注意:close()/flush()均会冲刷输出流的缓冲区,如果不正确关闭将造成写入字节的最后一个包无法得到传递。
扩展阅读:read()/read(byte[])的区别

1.2 读写字节

InputStream的read()方法读入一个字节,OutputStream的write(int b)写入字节一个,两个方法均阻塞线程。
输入/输出流UML图
输入与输出
输入与输出
注:Closeable(InputStream/OutputStream/Reader/Writer),Flushable(OutputStream/Writer),Readable,Appendable(Writer)接口

1.3 组合输入/输出过滤器

注:相对路径为用户工作目录
FileInputStream/FileOutputStream
read() unread() 是可回推输入流

2. 文本输入与输出

使用PrintWriter/PrintReader

3. 读写二进制数据

采用DataInput/DataOutput
输入与输出
输入与输出

4. Zip文档

采用ZipInputStream/ZipOutputStream

对象序列化/反序列化

为了从输入输出流中恢复,可以使用序列化机制

操作文件

Path:代表一个目录名序列,后跟着文件名。可用Paths构建
输入与输出
输入与输出

内存映射文件