Java笔记之文件

2019-01-20  本文已影响0人  码匠

本笔记来自 计算机程序的思维逻辑 系列文章

字节流

InputStream

markSupported mark reset 这3个方法用于支持从读过的流中重复读取;先用mark方法将当前位置标记下来,读取了一些字节后,希望重新从标记处读取时,调用reset方法

OutputStream

FileInputStream

用于读取文件字节流

FileOutputStream

ByteArrayInputStream

ByteArrayOutputStream

BufferedInputStream

BufferedOutputStream

字符流

Reader Writer

字符流基类,抽象类

InputStreamReader OutputStreamWriter

将字节流转换为字符流,适配器类

FileReader FileWriter

输入输出为文件的字符流

CharArrayReader CharArrayWriter

输入输出为字符数组的字符流

StringReader StringWriter

输入输出为字符串的字符流

BufferedReader BufferedWriter

PrintWriter

将基本类型和对象转换为其字符串形式输出

Scanner

可以读取基本类型的字符串形式

小结

文件和目录

File类的操作

文件元数据、文件操作和目录操作

File

文件元数据

当构建File对象时是相对路径,则可能获取不到parentparentFile,需使用getAbsoluteFilegetCanonicalFile获取绝对路径的File对象,再获取父对象

文件操作

目录操作

随机读写文件

构造方法

RandomAccessFile(String name, String mode) RandomAccessFile(File file, String mode)

mode 打开模式

其它方法

实际应用

键值数据库

内存映射文件

概念

用法

映射完成后,文件就可以关闭,后续对文件的读写可以通过MappedByteBuffer

MappedByteBuffer

实际应用

消息队列

序列化

Serializable

复杂对象的序列化

定制序列化

用途

局限

JSON/XML/MessagePack

目前市场上通用的数据格式有 JSONXML ,容易阅读和理解

MessagePack 是一种二进制形式的JSON,编码更为精简高效

工具库

常见文件处理

属性文件

使用Properties类处理此类文件

优点
限制

CSV文件

Comma-Separated Values 表示逗号分隔值

一行表示一条记录,一个记录包含多个字段,字段之间用逗号分隔

使用Apache Commons CSV处理此类文件

Excel文件

使用Apache POI类库处理此类文件

HTML文件

使用jsoup处理此类文件

压缩文件

Java SDK 支持两种格式 gzipzip

gzip 只能压缩一个文件,而 zip 文件中可以包含多个文件

如果需要更多格式,考虑Apache Commons Compress

上一篇 下一篇

猜你喜欢

热点阅读