Java IO Notes
Posted on 18/02/2019IO
File
-
File类是IO包中唯一代表磁盘文件本身的对象,定义了一些与平台无关的方法操作文件。通过调用各种方法完成文件(夹)的创建、删除、重命名、判读读写权限、查询日期等操作。 -
遍历目录:
public void recurseDirs(File startDir, String regex){ /* * list() 方法返回字符数组 * listFiles() 方法返回 File 数组 */ for(File item : startDir.listFiles()){ if(item.isDirectory()){ recurseDirs(item); }else{ if(item.getName().matches(regex)) System.out.println(item); } } } -
FileNameFilterpublic interface FileNameFilter{ boolean accept(File dir, String name); }向
File类的list()方法传入FileNameFilter对象,选择满足条件的文件。FileNameFilter类中的accept()方法的File参数指某个文件所处的文件夹对象,String则指该文件的文件名。accept()方法返回true则包含该文件,否则排除。这是一种策略模式。
-
其他
IO的分类
根据文件流的输入、输出类型,字节流、字符流,Java IO中常用的IO流可做如下分类:
| StreamType | ByteBased | CharBased | ||
|---|---|---|---|---|
| Input | Output | Input | Output | |
| Basic | InputStream | OutputStream | Reader InputStreamReader(adapter) | Writer OutputStreamWriter(adapter) |
| Arrays | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
| Files | FileInputStream RandomAccessFile | FileOutputStream RandomAccessFile | FileReader | FileWriter |
| Pipes | PipledInputStream | PipledOutputStream | PipledReader | PipledWriter |
| Buffering | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
| Filtering | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
| Parsing | PushbackInputStream StreamTokenizer | / | PushbackReader LineNumberReader | / |
| Strings | / | / | StringReader | StringWriter |
| Data | DataInputStream | DataOutputStream | / | / |
| Data-Formatted | / | PrintStream | / | PrintWriter |
| Objects | ObjectInputStream | ObjectOutputStream | / | / |
| Utilites | SequenceInputStream | / | ||
-
字节流的继承关系图


-
字符流的继承关系图

