CoreJava高级教程:IO部分详解

需积分: 9 6 下载量 25 浏览量 更新于2024-07-31 收藏 741KB PDF 举报
"CoreJava高级部分,主要涵盖了Java的IO操作,特别是关于`java.io.File`类的使用。" 在CoreJava的高级部分,我们深入探讨了Java输入输出(IO)系统,其中`java.io.File`类是核心部分。这个类主要用于管理文件和目录的相关信息,但不直接涉及文件内容的读写。以下是一些关键知识点: 1. **File类的创建与基本信息获取**: - 使用`new File("文件路径")`创建File对象,路径分隔符在Windows和Linux中应统一使用正斜杠`/`。 - `length()`方法返回文件的大小(字节)。 - `lastModified()`返回文件最后修改的时间,以毫秒为单位,可以通过Date对象转换成日期格式。 - `getName()`获取文件名,`getPath()`获取完整路径。 - `exists()`检查文件或目录是否存在。 - `isFile()`和`isDirectory()`分别判断对象是否为文件或目录。 2. **文件操作**: - `delete()`方法删除文件,对于文件和空目录都有效,非空目录则无法直接删除。 3. **目录操作**: - `mkdir()`用于创建单级目录,但仅能创建已存在的上级目录下的新目录。 - `mkdirs()`创建多级目录,如果上级目录不存在,会尝试创建整个路径。 - 删除目录时,`delete()`只能删除空目录。 4. **目录内容列举**: - `listFiles()`返回当前目录下的所有子文件和目录,结果是一个File对象数组。 - `listFiles(FileFilter)`允许根据特定条件(如扩展名)筛选目录下的文件,FileFilter是一个接口,可以通过实现这个接口自定义过滤规则。 5. **FileFilter的使用**: - 可以创建一个实现`FileFilter`接口的匿名内部类,例如,筛选所有`.txt`文件: ```java File[] textFiles = dir.listFiles(new FileFilter() { public boolean accept(File file) { return file.getName().endsWith(".txt"); } }); ``` - 这样,`textFiles`数组就包含了指定目录下所有`.txt`后缀的文件。 6. **更多IO操作**: - 文件的读写通常通过`InputStream`和`OutputStream`进行,如`FileInputStream`和`FileOutputStream`。 - `BufferedReader`和`PrintWriter`处理字符流,便于文本数据的读写。 - `FileReader`和`FileWriter`用于处理字节流,适合简单的文本文件操作。 - `RandomAccessFile`允许在文件中随机定位和读写,适合处理大文件。 7. **NIO(New IO)**: - Java 1.4引入的NIO提供了非阻塞I/O模型,包括通道(Channel)、缓冲区(Buffer)和选择器(Selector),提高了IO性能和并发处理能力。 以上只是CoreJava高级部分IO操作的一个概述,实际开发中还会涉及到异常处理、文件复制、流的组合与转换等复杂场景,理解并熟练掌握这些知识点对于Java开发者至关重要。