首页 > 编程 > Java > 正文

JDK之java.io.File类的超~详细解析

2019-11-08 00:57:17
字体:
来源:转载
供稿:网友
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) */
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表