file可以是一个文件夹吗 java java中的file文件类详解

您所在的位置:网站首页 java重命名文件夹文件消失 file可以是一个文件夹吗 java java中的file文件类详解

file可以是一个文件夹吗 java java中的file文件类详解

2023-07-18 08:15| 来源: 网络整理| 查看: 265

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