一、Java的类层次结构图
二、File类
在Java语言的java.io包中,由File类提供了描述文件和目录的操作与管理方法。
但File类不是InputStream、OutputStream或Reader、Writer的子类,因为它不负责数据的输入输出,而专门用来管理磁盘文件与目录。
-
File类共提供了四个不同的构造函数,以不同的参数形式灵活地接收文件和目录名信息。构造函数:
1)File (String pathname)
例:File f1=new File("FileTest1.txt"); //创建文件对象f1,f1所指的文件是在当前目录下创建的FileTest1.txt
2)File(URI uri)
3)File (String parent , String child)
例:File f2=new File(“D:\\dir1","FileTest2.txt") ;// 注意:D:\\dir1目录事先必须存在,否则异常
4)File (File parent , String child)
例: File f4=new File("E:\\dir3"); File f5=new File(f4,"FileTest5.txt"); //在如果 E:\\dir3目录不存在则需要先使用f4.mkdir()先创建
一个对应于某磁盘文件或目录的File对象一经创建, 就可以通过调用它的方法来获得文件或目录的属性。
1)public boolean exists( ) 判断文件或目录是否存在 2)public boolean isFile( ) 判断是文件还是目录 3)public boolean isDirectory( ) 判断是文件还是目录 4)public String getName( ) 返回文件名或目录名 5)public String getPath( ) 返回文件或目录的路径。 6)public long length( ) 获取文件的长度 7)public String[ ] list ( ) 将目录中所有文件名和目录名保存在字符串数组中返回。 8)public File[] listFiles() 返回某个目录下所有文件和目录的绝对路径,返回的是File数组 9)public String getAbsolutePath() 返回文件或目录的绝对路径 .... File类中还定义了一些对文件或目录进行管理、操作的方法,常用的方法有: 1) public boolean renameTo( File newFile ); 重命名文件 2) public void delete( ); 删除文件 3) public boolean mkdir( ); 创建目录 4)public boolean createNewFile(); 创建文件
例子:输出一个目录中的所有文件名(目录可能是多级目录,如a目录中有b、c目录。。。)
FileUtils.java
public class FileUtils { public static void listDir(String dir) throws IOException { File file = new File(dir); //传进来的可能不是一个目录 if (!file.isDirectory()) { throw new IOException(dir+"不是目录"); } //传进来的可能是一个错误的路径 if (file == null) { throw new IOException("没有此路径"); } File[] files = file.listFiles(); for (File f : files) { //有可能是一个多级目录,递归调用 if (f.isDirectory()) { listDir(f.getAbsolutePath()); //是文件就直接输出该文件的绝对路径 }else { System.out.println(f.getAbsolutePath()); } } } }
Main.java
public class Main { public static void main(String[] args) throws IOException { FileUtils.listDir("E:\\ssh"); } }