file可以是一个文件夹吗 java java中的file文件类详解 |
您所在的位置:网站首页 › java重命名文件夹文件消失 › file可以是一个文件夹吗 java java中的file文件类详解 |
java File 类一、File的概念 Java.io包下代表平台无关的文件和目录。也就是说如果希望在程序中操作文件或目录都可以通过File类来完成。 File可以新建、删除、和重命名文件和目录。但****File不能访问文件本身****,如果需要访问文件内容,则需要 I/O。 File类的实例表示一个文件或者目录(文件夹)。 构造一个File实例****并不是创建这个目录或文件****,而是该路径的一个抽象,它可能真实存在也可能不存在。(就是指向这个文件或目录)。 二、相对路径和绝对路径1、路径分类:绝对路径、相对路径 2、绝对路径:从根目录开始的路径,称为绝对路径 D:/dir1/xxx.txt Windows系统中:盘符目录就是根目录,D:、E: Linux系统中:/就是根目录,从/开始的路径就是绝对路径 3、相对路径:相对于某个路径而言的路径 相对于不同的路径,同样的相对路径,表达的是不同的路径 Dos命令行中:相对于当前路径(Dos命令行所在的路径),a/b/c.txt Eclipse中:相对于当前工程的根目录 三、File类的构造方法File(String pathname) 通过将给定路径名字符串转换为抽象路径名来指向一个文件。 [File](#File(java.lang.String, java.lang.String))(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串指向一个文件。 [File](#File(java.io.File, java.lang.String))(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串指向一个文件。 *注意:* 起的类名不要用File,这样new File() 系统认为new的是自己手写的这个File类。 四、File类的常用方法4.1 创建的方法1、boolean 变量名=file的变量名. createNewFile():创建当前File对象所描述的路径的文件 Boolean值为true,说明创建成功,反之不成功。 .createNewFile()方法需要布尔型变量去接收。 2、boolean变量名=file的变量名. mkdir():创建当前File对象所描述的路径的文件夹(如果父级路径不存在,那么不会自动创建父级路径) 3、boolean 变量名=file的变量名. mkdir****s****():创建当前File对象所描述的路径的文件夹(如果父级路径不存在,那么自动创建父级路径)解释:可以同时创建不存在的多级文件夹*注:mkdir一次只能创建一级目录,一次创建多级目录使用mkdirs()* package day20; import java.io.File; import java.io.IOException; public class caogao { public static void main(String[] args) { File f1 = new File("D:/dir/cc.docx");//创建Word文档,使用后缀.docx boolean b; try { b = f1.createNewFile(); //创建Word文档 System.out.println("cc.docx文件是否创建成功:"+b); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } File f2 = new File("D/dir3"); //原本是没有dir3这个文件夹(目录)的 boolean c = f2.mkdir(); //mkdir一次只能创建一个目录 System.out.println("dir3文件夹是否创建成功:"+c); File f3 = new File("D/dir4/aa"); //原本是没有dir3和aa文件夹(目录)的 boolean d = f3.mkdirs(); //mkdirs一次可创建多个目录 System.out.println("dir4和aa文件夹是否创建成功:"+d); } }运行结果: cc.docx文件是否创建成功:true dir3文件夹是否创建成功:true dir4和aa文件夹是否创建成功:true 4.2 删除的方法1、delete():删除调用者描述的文件或者文件夹 2、注意事项: (1)delete在删除文件夹的时候,只能删除空文件夹 (2)delete方法不走回收站 package day20; import java.io.File; public class caogao01 { public static void main(String[] args) { File f1 = new File("D:/dir3"); //dir3 是空目录 File f2 = new File("D:/dir4"); //dir4是 非空目录 boolean b = f1.delete(); boolean c = f2.delete(); System.out.println("删除成功?:"+b); System.out.println("删除成功?:"+c); } }结果: 删除成功?:true 删除成功?:false 4.3 重命名1、renameTo(File dest) 调用者是当前的文件或者文件夹的路径对象 参数是变化之后的文件或者文件夹的路径对象 2、注意事项: 如果在同一个文件夹下,修改路径,就是重命名 如果在不同文件夹下,修改路径,就是剪切package day20; import java.io.File; public class f { public static void main(String[] args) { File f1 = new File("D:/dir2/aa"); //f1为文件夹 File f11 = new File("D:/dir2/cc"); //f11为文件夹 File f2 = new File("D:/dir2/bb.docx"); //f2为office文件 File f22 = new File("D:/dir2/ff.docx"); //f22为office文件 boolean b = f1.renameTo(f11); boolean c = f2.renameTo(f22); System.out.println("aa改名cc成功?:"+b); System.out.println("bb.docx改名ff.docx成功?:"+c); File f3 = new File("D:/tt.txt"); File f33 = new File("C:/aa.txt"); boolean d = f3.renameTo(f33); System.out.println("D:/tt.txt移动并改名到E:/aa.txt 成功?"+d); } }结果: aa改名cc成功?:true bb.docx改名ff.docx成功?:true D:/tt.txt移动并改名到E:/aa.txt 成功?false 注意: (1)扩展名 (2) 如果跨盘符卷移动一个文件夹,移不动 *4.4 判断功能的方法*(1)exists():判断当前调用者File对象,是否存在 (2)isFile():判断当前调用者File对象,是否是文件 (3)isDirectory():判断当前调用者File对象,是否是文件夹 package day20; import java.io.File; public class lei { public static void main(String[] args) { File f1 = new File("D:/dir/a1.txt"); boolean b = f1.exists(); // 判断对象f1是否存在 boolean c = f1.isFile(); // 判断对象f1是否是文件夹 boolean d = f1.isDirectory();// 判断对象f1是否是文件夹 System.out.println("判断对象f1是否存在:" + b); System.out.println("判断对象f1是否是文件夹" + c); System.out.println("判断对象f1是否是文件夹" + d); } }结果: 判断对象f1是否存在:true 判断对象f1是否是文件夹true 判断对象f1是否是文件夹false *4.5 获取功能的方法*1、getAbsolutePath():获取当前File对象的绝对路径 2、getPath():获取的就是在构造方法中封装的路径 3、getName():获取最底层的简单的文件或者文件夹名称(不包含所造目录的路径) 4、length():获取文件的字节个数(不指文件夹) 5、String[] list():获取当前文件夹下的所有文件和文件夹的名称,到一个字符串数组中 6、File[] listFiles():获取当前文件夹下的所有文件和文件夹的File对象,到一个File对象数组中 package day20; import java.io.File; public class lei { public static void main(String[] args) { File f1 = new File("D:/dir/a1.txt"); boolean b = f1.exists(); // 判断对象f1是否存在 boolean c = f1.isFile(); // 判断对象f1是否是文件夹 boolean d = f1.isDirectory();// 判断对象f1是否是文件夹 System.out.println("判断对象f1是否存在:" + b); System.out.println("判断对象f1是否是文件夹" + c); System.out.println("判断对象f1是否是文件夹" + d); } }结果: 判断对象f1是否存在:true 判断对象f1是否是文件夹true 判断对象f1是否是文件夹false package day20; import java.io.File; public class lei01 { public static void main(String[] args) { File f1 = new File("a.doc"); File b = f1.getAbsoluteFile(); //获取f1的绝对地址 String c = f1.getPath(); //获取f1的封装地址 String name = f1.getName(); //获取f1的文件名 long l = f1.length(); //获取f1的文件字节数 System.out.println(b); System.out.println(c); System.out.println(name); System.out.println(l); } }结果: D:\soft\eclipse-workspace\day20\a.doc a.doc a.doc 0 *练习:**练习1:********检查文件是否存在,文件的创建*描述:检查D盘下是否存在文件a.txt,如果不存在则创建该文件。 package day20; import java.io.File; import java.io.IOException; /** * @author TaoTianye *题目:练习1:检查文件是否存在,文件的创建 描述:检查D盘下是否存在文件a.txt,如果不存在则创建该文件。 */ public class lei04 { public static void main(String[] args) { File f1 = new File("D:/a.txt"); boolean b = f1.exists(); System.out.println("D盘下是否存在文件a.txt: "+b); if(b) { System.out.println("D盘下a.txt文件已经存在"); }else { try { boolean c = f1.createNewFile(); System.out.println("D盘下a.txt文件不存在,现在已经创建,创建结果为:"+c); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }结果: D盘下是否存在文件a.txt: false D盘下a.txt文件不存在,现在已经创建,创建结果为:true *练习2:找出dir文件夹下以a开头的所有文件和文件夹*提示:String类中有方法: boolean startsWith() boolean endsWith() package day20; import java.io.File; /** * @author TaoTianye *找出dir文件夹下以a开头的所有文件和文件夹 提示:String类中有方法: (1)startsWith()方法返回的值为布尔型 startsWith(String prefix) 测试此字符串是否以指定的前缀开头。 (2)endsWith()方法返回的值为布尔型 endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。 */ public class lei05 { public static void main(String[] args) { File f1 = new File("D:/dir/"); File[] lf1 = f1.listFiles(); System.out.println("D盘下dir文件夹下以a开头的所有文件和文件夹如下:"); for(int i=0;i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |