package com.LQBZ.JDK.io;
import java.io.*;
import java.net.URI;
import java.util.Arrays;
//提示:以下代码建议分开来,一步一步的探索执行
public class ClassFileTest {
public static void main(String[] args) throws IOException {
//实例化一个File类,File类的构造器一共有4种,具体见API.
//路径名字自己找一个合适的就好
File file = new File("G:\\Users\\Administrator\\workspace\\test\\src\\com\\hello2.java");
File file1 = new File("G:\\Users\\Administrator\\workspace\\test\\src\\com\\hello.java");
// //输出文件的目录,相当于file.toString().
// System.out.println(file);
// //表示两个目录之间的分隔符,跟操作系统有关.
// System.out.println(File.pathSeparator);
// //表示一个目录中的分隔符,同样跟操作系统有关.
// System.out.println(File.separator);
// //表示文件是否可执行.
// System.out.println(file.canExecute());
// //表示文件是否可读.
// System.out.println(file.canRead());
// //表示文件是否可写.
// System.out.println(file.canWrite());
// //用来比较两个文件(目录)的路径是否一致,返回0为一致.
// System.out.println(file.compareTo(file1));
// //创建文件,返回值为boolean类型
// file.createNewFile();
// //删除文件,返回值为boolean类型
// file.delete();
// //验证文件是否存在.
// System.out.println(file.exists());
// //返回文件的与构造器参数有关的绝对路径(字符串).
// System.out.println(file.getAbsolutePath());
// //返回文件的与构造器参数有关的绝对路径(File类型)
// System.out.println(file.getAbsoluteFile());
// //返回文件的全路径(字符串).
// System.out.println(file.getCanonicalPath());
// //返回文件的全路径(File类型)
// System.out.println(file.getCanonicalFile());
// //返回抽象路径名所指定的分区中未分配的字节数.
// System.out.println(file.getFreeSpace());
// //返回特指的文件名.
// System.out.println(file.getName());
// //返回上一层目录(父目录).
// System.out.println(file.getParent());
// //原理与上面那个大致相同
// System.out.println(file.getParentFile());
// //返回所在分区的总大小
// System.out.println(file.getTotalSpace());
// //返回此抽象路径名指定的分区上可用于此虚拟机的字节数。
// System.out.println(file.getUsableSpace());
// //判断路径是否为绝对路径
// System.out.println(file.isAbsolute());
// //判断所指文件是否为目录
// System.out.println(file.isDirectory());
// //判断所指文件是否为标准文件.
// System.out.println(file.isFile());
// //判断文件是否为隐藏文件
// System.out.println(file.isHidden());
// //返回文件上一次被修改时间.不是标准的日期格式.
// System.out.println(file.lastModified());
// //返回文件的长度
// System.out.println(file.length());
// //超重要!!!!返回指定 "目录" 下所有的文件和目录(不遍历)
// System.out.println(Arrays.toString(file.list()));
// //超级超级超级重要!!!!!返回指定"目录"下所有有特定形式的文件!!!!!!
// System.out.println(Arrays.toString(file.list(new FilenameFilter() {
// String suffix = ".java";
// @Override
// public boolean accept(File dir, String name) {
// return name.endsWith(suffix);
// }
// })));
// //以下两个同以上两个差不多,区别还是返回类型是String还是File的问题
// //这里举的例子是"返回所有文件属性是标准文件".还是蛮吊.
// //还有一个小区别:以上两个list参数没有FileFilter类型(见API)
// //也就是说按照目标是文件还是目录返回的只能用listFiles()方法(不是按照扩展名)
// System.out.println(Arrays.toString(file.listFiles()));
// System.out.println(Arrays.toString(file.listFiles(new FileFilter() {
// @Override
// public boolean accept(File pathname) {
// return pathname.isFile();
// }
// })));
// //listRoots()是个静态方法,用类名直接调用,返回的是计算机对应系统的所有根路径.
// System.out.println(Arrays.toString(File.listRoots()));
// //createNewFile()创建的是文件,而下面的mkdir()创建的是目录.
// //mkdirs()是连带创建所有路径中不存在的包
// System.out.println(file.mkdir());
// //重命名指定文件
// System.out.println(file.renameTo(new File("G:\\Users\\Administrator\\workspace\\test\\src\\com\\hello21.java")));
// //好像不是很可靠的设置文件执行权限的命令
// System.out.println(file.setExecutable(false));
// System.out.println(file.canExecute());
// //同样十分蹩脚的修改最后修改时间的函数
// System.out.println(file1.lastModified());
// System.out.println(file1.setLastModified(1487329625258));
// //最后的几个设置可读可写什么的函数就不写了
// //这里!相当!十分!非常!特别!极其重要的函数!!!把文件路径转换成URL地址!!
// //非常注意!!!转换用的类是"URI"而不是"URL"!!!这是因为URL类不会处理应该被转义的字符
// //具体见百度
// URI url = file.toURI();
// System.out.println(url);
}
}
/**
* 总结:
* File类的主要功能是与操作系统的文件结构密切相关,它是基于操作系统的,也就是说
* Windows系列和Linux系列的操作系统的文件结构和表示方法都有一些不同,比如上面
* 提到过的路径分隔符两者就有所不同
* 这些东西在哪会用到呢?打个比方,你成功的黑到了一台电脑里面(并不鼓励),你要想在
* 别人的电脑上动点什么手脚,以上的命令显然是必不可少的吧?所以不管是什么,先想到了
* 或者是提前有这个需求了,学起来就会感觉特别的有针对性.(我是不是暴露了什么:-D)
*/
JDK之java.io.File类 超~详细解析
最新推荐文章于 2024-07-14 18:31:56 发布