Java File常用类
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。
public class FileDemo {
public static void main(String[] args) throws IOException {
//***构造器***
//1.File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File file01=new File("D:/test.txt");
//2.File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创 建一个新 File 实例。
File file02=new File("D:/", "test.txt");
//3.File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一 个新 File 实例。
File file=new File("D:/");
File file03=new File(file, "test03.txt");
System.out.println(file03);
//类方法
// boolean equals(Object obj)测试此抽象路径名与给定对象是否相等。
System.out.println(file01.equals(file02));
//boolean exists()测试此抽象路径名表示的文件或目录是否存在。
System.out.println(file01.exists());
// boolean canExecute()测试应用程序是否可以执行此抽象路径名表示的文件。
System.out.println(file01.canExecute());
// boolean canRead()测试应用程序是否可以读取此抽象路径名表示的文件。
System.out.println(file01.canRead());
// boolean canWrite()测试应用程序是否可以修改此抽象路径名表示的文件。
System.out.println(file01.canWrite());
// boolean setReadOnly()标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。
System.out.println(file01.setReadOnly());
// boolean setWritable(boolean writable)设置此抽象路径名所有者写权限的一个便捷方法。
// writable - 如果为 true,则设置允许写操作的访问权限;如果为 false,则不允许写操作。
System.out.println(file01.setWritable(true));
//boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新 的空文件。
System.out.println("判断"+file03.exists());//判断该文件是否存在
System.out.println(file03.createNewFile());//不存在就创建一个,创建了就返回true
//boolean delete() 删除此抽象路径名表示的文件或目录。
System.out.println(file03.delete());
//File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。
//String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
File file04=new File("haha.txt");
System.out.println(file04);//返回haha.txt
System.out.println(file04.getAbsoluteFile());//返回的是File类型
System.out.println(file04.getAbsolutePath());//返回的是字符串类型
//long getFreeSpace() 返回此抽象路径名指定的分区中未分配的字节数
System.out.println(file02.getFreeSpace());
//String getName() 返回由此抽象路径名表示的文件或目录的名称。
File file05=new File("D:/AAA");
System.out.println(file05.getName());
System.out.println(file04.getName());
//String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返 回 null。
// File getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返 回 null。
File file06=new File("D:/haha/heihei.txt");
System.out.println(file06.getParent());//返回此抽象路径名父目录的路径名字符串
System.out.println(file06.getParentFile());//返回此抽象路径名父目录的抽象路径名
/* boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件。
*/
System.out.println(file06.isAbsolute());
System.out.println(file05.isDirectory());
System.out.println(file05.isFile());
//long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。
System.out.println(file06.lastModified());
System.out.println(new SimpleDateFormat("yyyy|MM|dd--HH:mm:ss").format(new Date(new File(file05, "haha.txt").lastModified())));
//long length() 返回由此抽象路径名表示的文件的长度。
System.out.println(file06.length());
//File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
//String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目 录。
System.out.println(Arrays.toString(file06.listFiles()));
System.out.println(Arrays.toString(file06.list()));
//boolean mkdir() 创建此抽象路径名指定的目录。
//boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败 时也可能已经成功地创建了一部分必需的父目录。
File file07=new File("D:/aaaa/bbbb");
System.out.println(file07.exists());//判断目录是否存在
System.out.println(file07.mkdir());
System.out.println(file07.mkdirs());
//renameTo(File) 重新命名此抽象路径名表示的文件。
//如果已经存在具有目标抽象路径名的文件,那么该操作可能无法获得成功
File file08=new File("E:/ccc.txt");
System.out.println(file01.renameTo(file08));//这个file08存的就是file01要重新命名的抽象 路径
}
}
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。
但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。