IO流之File类
对于File类来说,创建对象就是创建文件或者文件夹,有3个构造器,绝对路径或者相对路径,第一种,直接填写路径,第二种,parent,chlid,创建一个上层文件,跟下层文件,第三种直接在一个对象下创建文件
对于常用的方法来说:getName,isFile,等等,
* 1:String getAbsolutePath:获取绝对路径
* 2:String getPath:获取路径
* 3:String getName:获取名称
* 4:String getParent:获取上层文件目录,若无,返回null
* 5:long length:获取文件字节数
* 6:long lastModified:获取最后一次修改的时间
* 7:String[] list:获取指定目录下的所有文件或文件目录的名称数组
* 8:File[] listFiles:获取指定目录下的所有文件或者文件目录的File数组
****************
1 /** 2 * File类的使用 3 * 1:File类的一个对象就是一个文件或者一个文件夹 4 * 2:File类声明在java.io包下 5 * 3:创建对象有3种构造器 6 * 7 * 8 */ 9 public class FileTest { 10 //如何创建File类的实例 11 @Test 12 public void test1(){ 13 //构造器1:直接创建一个文件 14 File file=new File("hello.txt");//相对路径:相当于当前的module下 15 File file4=new File("E:\\"); 16 System.out.println(file4.list()); 17 File file1=new File("E:\\hello\\DAY08\\src\\IO\\hello.txt"); 18 //绝对路径:包含盘符的文件路径 19 System.out.println(file); 20 //构造器2:创建文件夹,两个参数 21 File file2=new File("E:\\hello","E:\\hello\\DAY08"); 22 System.out.println(file2); 23 //构造器3:在已有的一个文件下创建文件 24 File file3=new File(file2,"hpp.txt"); 25 System.out.println(file3); 26 } 27 /** 28 * 常用的方法; 29 * 1:String getAbsolutePath:获取绝对路径 30 * 2:String getPath:获取路径 31 * 3:String getName:获取名称 32 * 4:String getParent:获取上层文件目录,若无,返回null 33 * 5:long length:获取文件字节数 34 * 6:long lastModified:获取最后一次修改的时间 35 * 7:String[] list:获取指定目录下的所有文件或文件目录的名称数组 36 * 8:File[] listFiles:获取指定目录下的所有文件或者文件目录的File数组 37 * File类的使用: 38 * 1:File类的一个对象就代表了一个文件或者文件夹 39 * 2:File类中只涉及到文件的创建删除,重命名,修改时间,文件大小等方法,未涉及到文件内容的读取与写入 40 * 如果需要读写文件内容必须用到IO流 41 * 3:后续File类的对象通常会作为参数传递到流的构造器这,指明读写的"终点". 42 * 43 * 44 */ 45 @Test 46 public void test2(){ 47 File file=new File("E:\\hello","E:\\hello\\DAY08\\hpp.txt"); 48 File file1=new File("E:\\hi.txt"); 49 File file2=new File("hello.txt"); 50 System.out.println(file.getAbsoluteFile()); 51 System.out.println(file2.getPath()); 52 System.out.println(file.getName()); 53 System.out.println("***********************"); 54 System.out.println(file.getParent()); 55 System.out.println(file.length());//没有创建文件的情况下,是不存在文件长度的, 56 System.out.println(file1.length()); 57 System.out.println(file2.length());//在day08下面创建了文件所以有长度字节数 58 System.out.println(new Date(file2.lastModified())); 59 } 60 @Test 61 public void test3(){ 62 File file=new File("E:\\"); 63 String[]list=file.list();//list方法返回一个String类型的文件目录数组 64 for (String obj:list){ 65 System.out.println(obj); 66 } 67 System.out.println("****************"); 68 File[]listFiles=file.listFiles(); 69 for (File obj1:listFiles){//listFiles方法返回File型的文件目录数组 70 System.out.println(obj1); 71 } 72 } 73 @Test 74 public void test4(){ 75 //renameTo方法:将一个文件改名剪切到另一个目录下, 76 // 要保证file是相对路径,代表必须先在此模块下创建一个文件 77 File file=new File("E:\\hello\\hello.txt");//绝对路径不可以转移 78 File file1=new File("E:\\hello\\DAY08\\hpp.txt"); 79 System.out.println(file.renameTo(file1)); 80 } 81 @Test 82 public void test5(){ 83 //File类的判断方法 84 File file=new File("hello.txt"); 85 System.out.println(file.isHidden()); 86 System.out.println(file.isDirectory()); 87 System.out.println(file.canRead()); 88 System.out.println(file.canWrite()); 89 System.out.println(file.exists()); 90 System.out.println(file.isFile()); 91 } 92 @Test 93 public void test6() throws IOException{ 94 /** 95 * boolean createNewFile:创建文件,若文件存在则不创建,返回false; 96 * boolean mkdir:创建文件目录,如果此文件存在,就不创建,如果上层目录不存在也不创建 97 * boolean mkdirs:创建文件目录,如果此文件存在不创建,不存在的情况下 98 * 不管上层文件目录存不存在,一并创建,如果上层文件存在,只创建最下面一个目录, 99 * 如果上层文件夹不存在,那不管上层有多少层文件夹都全部创建,返回true 100 */ 101 //创建硬盘中对应的文件或目录 102 File file=new File("hi.txt"); 103 if (!file.exists()){//文件不存在 104 file.createNewFile(); 105 System.out.println("创建成功"); 106 }else {//文件存在 107 file.delete(); 108 System.out.println("删除成功"); 109 } 110 System.out.println("*****************"); 111 //文件目录的创建 112 File file1=new File("E:\\hello\\hpp\\huang\\1323"); 113 if (file1.mkdir()){ 114 System.out.println("mkdir创建成功"); 115 }else if (file1.mkdirs()){ 116 System.out.println("mkdirs创建成功!"); 117 } 118 file1.delete();//删除文件 119 } 120 @Test 121 public void test7(){ 122 File file=new File("D:\\Chrome");//创建目录对象 123 listPrint(file); 124 } 125 //打印当前文件目录下的所有文件,使用递归 126 public void listPrint(File file){ 127 if (file.isFile()){//当前目录下如果是一个文件,直接输出 128 System.out.println(file); 129 }else {//是一个文件夹 130 File[]files=file.listFiles(); 131 for (File f:files){ 132 listPrint(f);//递归调用自己 133 } 134 } 135 } 136 }