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); } } }
-
FileNameFilter
public 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 | / |
-
字节流的继承关系图
-
字符流的继承关系图