一、File类
- 文件和目录路径名的抽象表示形式
- 用来将文件或者文件夹封装成对象
- 方便对文件与文件夹的属性信息进行操作
- File对象可以作为参数传递给流的构造函数
public class File implements Serializable, Comparable<File> { //字段。。。。。。。。。。。。。。。。。。。。。 //与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar public static final String pathSeparator; /** *与系统有关的路径分隔符。 *此字段被初始为包含系统属性 path.separator 值的第一个字符。 *此字符用于分隔以路径列表 形式给定的文件序列中的文件名。 *在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';' */ public static final char pathSeparatorChar; //与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。 public static final String separator; /** *与系统有关的默认名称分隔符。 *此字段被初始化为包含系统属性 file.separator 值的第一个字符。 *在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。 */ public static final char separatorChar; //构造方法。。。。。。。。。。。。。。。。。。。。。。。。。。。 //根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例 public File(File parent, String child){} //通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。如果给定字符串是空字符串,那么结果是空抽象路径名。 public File(String pathname){} //根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例 public File(String parent, String child){} //常用方法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 //创建-------------------------------------------------------------------- //当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 public boolean createNewFile() throws IOException{} //创建此抽象路径名指定的目录 public boolean mkdir(){} //创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。 public boolean mkdirs(){} //删除-------------------------------------------------------------------- //删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除 public boolean delete(){} //在虚拟机终止时,请求删除此抽象路径名表示的文件或目录 public void deleteOnExit(){} //判断-------------------------------------------------------------------- //测试此抽象路径名表示的文件或目录是否存在 public boolean exists(){} //测试此抽象路径名表示的文件是否是一个目录 public boolean isDirectory(){} //测试此抽象路径名表示的文件是否是一个标准文件。 public boolean isFile(){} //测试此抽象路径名指定的文件是否是一个隐藏文件。隐藏 的具体定义与系统有关。 public boolean isHidden(){} //测试此抽象路径名是否为绝对路径名 public boolean isAbsolute(){} //获取信息-------------------------------------------------------------------- //返回由此抽象路径名表示的文件或目录的名称。该名称是路径名名称序列中的最后一个名称。如果路径名名称序列为空,则返回空字符串。 public String getName(){} //返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 //抽象路径名的父 路径名由路径名的前缀(如果有),以及路径名名称序列中最后一个名称以外的所有名称组成。 //如果名称序列为空,那么该路径名没有指定父目录。 public String getParent(){} //将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称 public String getPath(){} //返回此抽象路径名的绝对路径名字符串。 public String getAbsolutePath(){} //返回此抽象路径名的绝对路径名形式。等同于 new File(this.getAbsolutePath())。 public File getAbsoluteFile(){} //返回此抽象路径名表示的文件最后一次被修改的时间 public long lastModified(){} //返回由此抽象路径名表示的文件的长度。如果此路径名表示一个目录,则返回值是不确定的。 public long length(){} //重新命名此抽象路径名表示的文件 public boolean renameTo(File dest){} //标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。 public boolean setReadOnly(){} //设置此抽象路径名所有者读权限的一个便捷方法 public boolean setReadable(boolean readable){} //设置此抽象路径名所有者写权限的一个便捷方法 public boolean setWritable(boolean writable){} /** *返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 *如果此抽象路径名不表示一个目录,那么此方法将返回 null。 *否则返回一个字符串数组,每个数组元素对应目录中的每个文件或目录。 *表示目录本身及其父目录的名称不包括在结果中。 *每个字符串是一个文件名,而不是一条完整路径。 *不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。 */ public String[] list(){} //返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录 public String[] list(FilenameFilter filter){} //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 public File[] listFiles(){} //返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录 public File[] listFiles(FilenameFilter filter){} //列出可用的文件系统根。 public static File[] listRoots(){} //按字母顺序比较两个抽象路径名 public int compareTo(File pathname){} }
二、java.io.FilenameFilter
实现此接口的类实例可用于过滤器文件名。
public interface FilenameFilter { //就一个方法 //测试指定文件是否应该包含在某一文件列表中。 boolean accept(File dir, String name); }
三、示例
import java.io.*; /** * 需求:列出指定目录中的class文件 */ public class FileTest { public static void main(String[] args) throws IOException { File dir = new File("E:\\f\\eclipse\\workspace0\\exercise\\bin\\day13"); listClassFile(dir); } public static void listClassFile(File dir) { if(!dir.exists()) return; File[] files = dir.listFiles(new FilenameFilter(){ public boolean accept(File dir, String name) { return name.endsWith("class"); } }); for(File file : files) { System.out.println(file.getName()); } } }
import java.io.*; /** * 需求:列出指定目录中的所有文件 * * 分析:用递归 */ public class FileTest { public static void main(String[] args) throws IOException { File dir = new File("E:\\f\\eclipse\\workspace0\\exercise\\bin"); printFiles(dir); } public static void printFiles(File dir) { if(!dir.exists()) return; System.out.println(dir.getName()); File[] files = dir.listFiles(); for(File file : files) { if(file.isDirectory()) printFiles(file); else System.out.println(" --: "+file.getName()); } } }
相关推荐
### Java.io包中的File类详解 #### 一、概述 `java.io.File`类是Java标准库中的一个重要组成部分,它提供了对文件系统进行基本操作的能力。`File`类位于`java.io`包中,它是唯一代表磁盘文件本身的对象。通过`File`...
java.io clojure.java.io 的 JK7 java.nio.file.Path 兼容性依赖信息该库托管在 Releases 上。 依赖: [me.moocar/java.io " 0.1.0 " ]用法是 JDK7 中引入的文件路径的抽象。 这个库提供了和 Paths 之间的兼容性。 ...
在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...
在探讨Java.nio与Java.io之间的比较时,我们首先需要理解这两个包在Java编程语言中的核心作用和它们各自的优势。Java.io和Java.nio是Java中处理输入/输出操作的两个主要框架,它们各自拥有独特的特性和应用场景。 #...
序列化的核心接口是 `java.io.Serializable`,它是一个标记接口,没有定义任何方法,用于标记可以被序列化的类。 #### 二、实现序列化的方法 为了使一个类支持序列化,需要让该类实现 `Serializable` 接口。实现这...
import java.io.File; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream...
File file = new File("path_to_your_file.txt"); // 使用FileReader创建字符输入流 FileReader fr = new FileReader(file); // 增加缓冲区,提高读取效率 BufferedReader br = new BufferedReader(fr); //...
在Java中,IO操作主要分为字节流和字符流两大类,分别由`java.io.InputStream`和`java.io.OutputStream`以及`java.io.Reader`和`java.io.Writer`作为基类。字节流处理的是8位的字节,而字符流处理的是16位的Unicode...
import java.nio.file.*; public class FileMoveExample { public static void main(String[] args) { Path source = Paths.get("path_to_source_file"); Path target = Paths.get("path_to_target_file"); ...
InputStream fis = new FileInputStream("file.txt"); InputStream bis = new BufferedInputStream(fis); ``` 在Java IO包中,还有许多其他的类,如DataInputStream和DataOutputStream,它们用于读写基本数据类型;...
首先,Java中的文件IO操作主要依赖于`java.io`包中的类,如`File`、`FileReader`、`FileWriter`、`BufferedReader`和`BufferedWriter`等。在描述中提到的`File`类是Java中的核心类,用于表示文件和目录路径名的抽象...
在Java开发过程中,使用文件I/O操作时遇到java.io.FileNotFoundException异常是一个比较常见的问题。即使文件路径正确无误,也可能会因为多种原因导致这个异常的发生。该异常属于编译时异常,即必须显式处理才能通过...
在Java中,我们可以使用`java.io.File`类来创建、删除、重命名或检查文件是否存在。例如,创建一个新文件的代码如下: ```java File file = new File("newFile.txt"); file.createNewFile(); ``` 如果要移动文件,...
7. **java.nio.file.***(Java 7及以上):非阻塞I/O框架,包括`Path`、`Files`、`FileSystem`等,提供了更高效的文件操作。 8. **java.io.BufferedReader**和**java.io.BufferedWriter**:用于读写文本文件时的...
Apache Commons IO库中的`org.apache.commons.io.FileUtils`类是一个非常实用的工具类,它提供了大量方便、高效的方法,用于处理...使用Apache Commons IO库,特别是`FileUtils`类,可以显著提升Java项目的开发效率。
Java.io包是Java编程语言中的核心包之一,它包含了用于输入/输出操作的类和接口。这个包在Java中扮演着至关重要的角色,因为它提供了处理数据流、字符流、对象序列化、文件读写以及与操作系统交互的各种工具。在本...
在Java编程语言中,`java.io`包是用于输入/输出(I/O)操作的基础部分,包含了许多类和接口,使得开发者能够处理数据流、字符流、对象序列化、磁盘文件以及网络连接等任务。本篇文章将深入探讨`java.io`包中的关键概念...
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import ...