1.File
1) java.io.File
* 该类用于描述文件系统中的一个文件或目录。
* File可以访问文件或目录的属性信息。 File可以操作文件或目录。 File可以查看一个目录有哪些子项。
* File不能访问文件内容!
2)String getName()
---获取文件名
3)long length()
---获取文件大小(文件占用的字节量)
4)boolean exists()
---判断当前File表示的文件或目录是否在硬盘中已经存在。
5)boolean lastModified()
---获取最后的修改时间 1970年元旦到这一刻的毫秒差。还不存在的文件的最后修改时间为0。
具体细节见代码:
package day01; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /** * java.io.File * 该类用于描述文件系统中的一个文件或目录。 * File可以访问文件或目录的属性信息。 * File可以操作文件或目录。 * File可以查看一个目录有哪些子项。 * * File不能访问文件内容! */ public class FileDemo1 { public static void main(String[] args) { /* * 描述目录时应当注意两点: * 1:尽量不用绝对路径,因为不同操作系统有差异。 * 2:目录的层级分割符不要直接写“/”或“\”,,因为 * 不同系统也有差异,所以使用File的常量: * File.separator就可以了。 */ // "/home/soft01/myworkspace/Mycode003_SE02/demo.txt" File file = new File("."+File.separator+"demo.txt");//.表示当前目录,项目所在目录 /* * 获取文件名 */ String name = file.getName(); System.out.println("文件名:"+name); /* * 获取文件大小(文件占用的字节量) */ long length = file.length(); System.out.println("文件大小:"+length); /* * 判断当前File表示的文件或目录是否在硬盘中已经存在。 */ boolean exits = file.exists(); System.out.println("已存在:"+exits); /* * 获取最后的修改时间 1970年元旦到这一刻的毫秒差。 * 还不存在的文件的最后修改时间为0。 */ long dateTime = file.lastModified(); System.out.println(dateTime); Date date = new Date(dateTime); System.out.println(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月d日 HH:mm:ss"); String dateStr = sdf.format(date); System.out.println(dateStr); //是否是隐藏文件 boolean isHidden = file.isHidden(); //是否可读 boolean canRead = file.canRead(); //是否可写 boolean canWrite = file.canWrite(); //是否可运行 boolean canExecute = file.canExecute(); //是否是文件 boolean isFile = file.isFile(); //是否是目录 boolean isDir = file.isDirectory(); System.out.println(isHidden+","+canRead+","+canWrite+","+canExecute+","+isFile+","+isDir); } }
6)boolean createNewFile()
---创建新文件
代码:
package day01; import java.io.File; import java.io.IOException; /** * 使用File创建一个新文件 */ public class FileDemo2 { public static void main(String[] args) throws IOException { /* * 在当前目录根目录下创建文件:test.txt * 若直接书写文件名,默认就在当前目录下,所以“./"是可以忽略不写的。 */ File file = new File("test.txt"); if(!file.exists()){ //创建当前文件(如果文件已存在,则不再创建) file.createNewFile(); System.out.println("文件创建成功"); } //file.createNewFile(); //System.out.println("111"); } }
7)boolean delete()
---删除一个现有的文件
代码:
package day01; import java.io.File; /** * 删除一个现有的文件 */ public class FileDemo3 { public static void main(String[] args) { /* * 删除当前目录中的test.txt文件 */ File file = new File("test.txt"); if(file.exists()){ boolean b1 = file.delete(); System.out.println(b1+"删除完毕"); } } }
8)boolean mkdir()
---创建一个目录
代码:
package day01; import java.io.File; import java.io.IOException; /** * 创建一个目录 */ public class FileDemo4 { public static void main(String[] args) throws IOException { /* * 在当前目录下创建目录demo */ File dir = new File("demo"); if(!dir.exists()){ dir.mkdir(); System.out.println("创建目录成功!"); } File file1 = new File("."); System.out.println(file1.length()); //删除目录 //dir.delete(); } }
9)boolean mkdirs()
---创建一个多级目录
package day01; import java.io.File; /** * 创建一个多级目录 * */ public class FileDemo5 { public static void main(String[] args) { /* * 在当前项目根目录下创建目录: * a/b/c */ File dirs = new File("a/b/c/d/e/f"); if(!dirs.exists()){ dirs.mkdirs(); System.out.println("创建完毕!"); } //dirs.delete(); } }
10)递归删除多级目录
代码:
package day01; import java.io.File; /** * 删除多级目录 * 当删除一个含有子项的目录时,直接使用delete方法是删除不成功的, * 需要先将该目录中的所有子项删除以后,该目录才可以成功删除。 * */ public class FileDemo6 { public static void main(String[] args) { /* * 删除当前目录中的a目录 */ File dir = new File("a"); deleteFile(dir); } public static void deleteFile1(File file){ if(!file.exists()){ return ; } if(file.isFile()){ file.delete(); return ; } File[] subs = file.listFiles(); for(File f : subs){ deleteFile(f); } file.delete(); //return ; } public static void deleteFile(File file){ if(file.isDirectory()){ File[] sub = file.listFiles(); for(File f : sub){ deleteFile(f); } } file.delete(); } }
11)File[] listFiles()
---该方法获取当前目录下的所有子项,由于一个目录下包含的无非还是文件或者目录,那么都可以用一个File对象表示。所以获取一个目录里面所有子项就等于获取了若干File对象,每一个表示其中一个子项。
代码:
package day01; import java.io.File; /** * 获取一个目录下的所有子项 * */ public class FileDemo7 { public static void main(String[] args) { /* * 获取当前项目根目录下的所有子项 */ File file = new File("."); /* * File[] listFiles() * 该方法获取当前目录下的所有子项,由于一个目录下 * 包含的无非还是文件或者目录,那么都可以用一个File * 对象表示。所以获取一个目录里面所有子项就等于获取 * 了若干File对象,每一个表示其中一个子项。 */ File[] files = file.listFiles(); for(File f : files){ if(f.isDirectory()){ //判断当前File表示的是否为一个文件 System.out.print("目录:"); }else if(f.isFile()){ //判断当前File表示的是否为一个目录 System.out.print("文件:"); } System.out.println(f.getName()); } } }
12)FileFilter文件过滤器
代码:
package day01; import java.io.File; import java.io.FileFilter; /** * FileFilter文件过滤器 * * File有一个重载的listFiles方法,允许我们传入一个 * 文件过滤器,并将满足过滤器要求的子项返回。不满足则忽略。 * */ public class FileDemo8 { public static void main(String[] args) { /* * 获取当前目录下名字以“.”开头的文件或目录。 */ FileFilter filter = new FileFilter(){ /** * 过滤器过滤条件: * 当给定的file对象满足要求,返回true即可。 */ public boolean accept(File file) { return file.getName().startsWith("."); } }; File file = new File("."); /* * 获取满足给定过滤器要求的所有子项。 */ File[] sub = file.listFiles(filter); for(File f : sub){ System.out.println(f.getName()); } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-12-25 15:16:22