System.in 是 InputStream 类的一个对象,System.out 和 System.error 是 PrintStream 类的对象
java.io.File
File 类提供了如下三种形式构造方法。
- File(String path):如果 path 是实际存在的路径,则该 File 对象表示的是目录;如果 path 是文件名,则该 File 对象表示的是文件。
- File(String path, String name):path 是路径名,name 是文件名。
- File(File dir, String name):dir 是路径对象,name 是文件名。
文件的创建和删除:
创建文件需要调用 createNewFile() 方法,创建目录需要调用 mkdir()(mkdirs) 方法,删除文件需要调用 delete() 方法。无论是创建还是删除文件通常都先调用 boolean exists() 方法判断文件或目录是否存在。
mkdir() 上级目录存在才能创建最后一级目录
mkdirs() 创建路径中的所有目录
目录分隔符:
- Windows 中使用反斜杠
\
表示目录的分隔符。 - Linux 中使用正斜杠
/
表示目录的分隔符。
String path = "C:" + File.separator + "test.txt"; // 拼凑出可以适应操作系统的路径
在操作文件时一定要使用 File.separator 表示分隔符
方法名称 | 说明 |
---|---|
boolean canRead() | 测试应用程序是否能从指定的文件中进行读取 |
boolean canWrite() | 测试应用程序是否能写当前文件 |
boolean delete() | 删除当前对象指定的文件 |
boolean exists() | 测试当前 File 是否存在 |
String getAbsolutePath() | 返回由该对象表示的文件的绝对路径名 |
String getName() | 返回表示当前对象的文件名或路径名(如果是路径,则返回最后一级子路径名) |
String getParent() | 返回当前 File 对象所对应目录(最后一级子目录)的父目录名 |
boolean isAbsolute() | 测试当前 File 对象表示的文件是否为一个绝对路径名。该方法消除了不同平台的差异,可以直接判断 file 对象是否为绝对路径。在 UNIX/Linux/BSD 等系统上,如果路径名开头是一条斜线/ ,则表明该 File 对象对应一个绝对路径;在 Windows 等系统上,如果路径开头是盘符,则说明它是一个绝对路径。 |
boolean isDirectory() | 测试当前 File 对象表示的文件是否为一个路径 |
boolean isFile() | 测试当前 File 对象表示的文件是否为一个“普通”文件 |
long lastModified() | 返回当前 File 对象表示的文件最后修改的时间 |
long length() | 返回当前 File 对象表示的文件长度 |
String[] list() | 返回当前 File 对象指定的路径文件列表 |
File[] listfiles() | 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件 |
String[] list(FilenameFilter) | 返回当前 File 对象指定的目录中满足指定过滤器的文件列表 |
boolean mkdir() | 创建一个目录,它的路径名由当前 File 对象指定 |
boolean mkdirs() | 创建一个目录,它的路径名由当前 File 对象指定 |
boolean renameTo(File) | 将当前 File 对象指定的文件更名为给定参数 File 指定的路径名 |
查找文件:
f.getName().endsWith(String s); //String.endsWith(String s)返回值 boolean
方法一:用file.isFile()和file.isDiretory()方法判定,是符合条件文件就打印,是文件夹就递归调用自己
方法二:文件过滤器