java - I/O
I/O 输入输出 input / output
java.io
File是内存中的对象,是文件或路径的抽象表示形式 -----》映射了硬盘中的文件或者文件夹
package io; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; public class FileTest { public static void main(String[] args){ File f1 = new File("C:\\Users\\Administrator\\Desktop\\test\\fileTest.txt"); //内容: Hello world. System.out.println(f1.canRead()); // 是否可读: 个人电脑上我们都是管理员权限,所以一般都可以 //true System.out.println(f1.canWrite()); //true System.out.println(f1.isHidden()); //是否隐藏 //false System.out.println(f1.isFile()); //是否是文件(还可能是文件夹) //true System.out.println(f1.length()); //文件内容字节长度 //12 System.out.println(f1.lastModified());//最后修改时间(1970年至今的毫秒数) //1570497049049 SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd kk:mm:ss"); System.out.println(sdf.format(f1.lastModified())); //规范化后输出 //2019-10-08 09:10:49 String f1_s = f1.getParent(); //获取父亲文件的名字 System.out.println(f1_s); //C:\Users\Administrator\Desktop\test File f1_f = f1.getParentFile(); //获取父亲文件的对象 System.out.println(f1_f); //C:\Users\Administrator\Desktop\test 虽然和上面返回名字一样,但是这个是调用的File.toString(){ return getPath();} System.out.println(f1_f.isDirectory()); //true //返回的是文件夹,和正常文件夹对象一样使用 //File的属性:path,name System.out.println(f1.getPath()); System.out.println(f1.getName()); //C:\Users\Administrator\Desktop\test\fileTest.txt 文件的绝对路径 //fileTest.txt 文件名 File f2 = new File("c:\\users\\administrator\\desktop\\test\\filetest.txt"); System.out.println(f2.length()); //12 // File的路径和名字不区分大小写,不过最好保持一致。 // 在电脑中文件比较也不区分大小写,比如 filetest.txt 和 FileTest.txt 不能在同一目录下。 File f3 = new File("C:\\Users\\Administrator\\Desktop\\test\\filetest1.txt"); System.out.println(f3.isFile()); //false //找不到文件后也会返回一个File对象,但是不可读,不可写,不是File,长度为0 //文件夹: File f4 = new File("C:\\Users\\Administrator\\Desktop\\test"); System.out.println(f4.isFile()); //false System.out.println(f4.isDirectory()); //true System.out.println(f4.canRead()); //true System.out.println(f4.length()); //4096 //路径不是File,可以读写,有长度(和文件夹内部的文件夹内容多少有关) String[] f4_s = f4.list(); //返回文件夹内子元素的名字 for(String s: f4_s){ System.out.println(s); } File[] f4_f = f4.listFiles(); //返回文件夹内子元素的对象 for(File f: f4_f){ System.out.println(f.getName()); } //太长了就不粘贴结果了- - File f5 = new File("C:\\Users\\Administrator\\Desktop\\test\\test.txt"); try { //创建文档需要用try包起来 System.out.println(f5.createNewFile()); //第一次运行:true //第二次运行:false,因为文件已经存在(没有下面那个f5.delete();删除的话),所以没有创建成功 //如果路径不存在,则会报错 } catch (IOException e) { e.printStackTrace(); } Boolean f5_b = f5.delete();//删除文件 System.out.println("f5是否被删除:" + f5_b); //f5是否被删除:true // 如果目标文件不存在或者文件夹下面还有元素没被删除则会返回false,删除失败 //想要删除文件夹需要用递归。 File f6 = new File("C:\\Users\\Administrator\\Desktop\\test\\f6Creat"); System.out.println(f6.mkdir()); //true 创建文件夹,前面的路径必须存在 File f7 = new File("C:\\Users\\Administrator\\Desktop\\test\\f7Creat\\test\\aaa"); System.out.println(f7.mkdirs()); //true 创建文件夹,前面路径不存在则创建出来 //如果起个文件名字比如aaa.txt,那么会创建出名字叫aaa.txt的文件夹 } }