文件和文件夹操作

文件和文件夹操作

file:文件和文件夹的抽象

路径分割符

\\ 或者File.separator
在当前系统下文件路径分割符

		System.out.println(File.separator);//StringSystem.out.println(File.separatorChar);//charString path1="src/com/file/Main.java";System.out.println(path1);
		//例如:范文在工程中的文件的路径//在工程中分隔符号String path11="src/com/file/Main.java";System.out.println(path11);//兼容性写法String path2="src"+File.separator+"com"+File.separator+"file"+File.separator+"Main.java";System.out.println(path2);
一、创建文件和文件夹

1.创建文件

		//1.文件路径String filePath="src/com/file/hero.txt";//2.根据路径 创建file文件对象File file=new File(filePath);//3.创建文件try {if(file.createNewFile()) {System.out.println("创建成功");}else {System.out.println("创建失败");}} catch (Exception e) {e.printStackTrace();}
2.创建文件夹
		//1.文件夹路径String directoryPath="src/com/file/file/hero";//2.创建File对象File dirFile=new File(directoryPath);//3。创建文件夹/** mkdir:创建某个文件夹,如果路径种的文件夹不存在,就创建失败* mkdirs:创建某个文件夹,如果路径中的文件夹不存在,就会先把不存在的文件夹创建*/if(dirFile.mkdirs()) {System.out.println("文件夹创建成功");}else {System.out.println("文件夹创建失败");}
二 判断文件或文件夹是否存在

1.判断文件

		//1.文件路径String filePath="src/com/file/hero.txt";//2.根据路径 创建file文件对象File file=new File(filePath);if(file.exists()) {System.out.println("文件是存在");}else {System.out.println("文件不存在");}

2.判断文件夹

		//1.文件夹路径String directoryPath="src/com/file/file/hero";//2.创建File对象File dirFile=new File(directoryPath);System.out.println(dirFile.exists()?"文件夹是存在":"文件夹不存在");
三 判断是否是文件 或者文件夹

下面所有的file和dirFile跟上面的一样

		System.out.println(file.isFile()?"是文件":"是文件夹");System.out.println(dirFile.isDirectory()?"是文件夹":"不是文件夹");

路径

路径的相关知识:
1.绝对路径:从系统的根目录开始,到某个文件(夹)的路径
2.相对路径:从当前目录开始,到某个文件(夹)的路径
. 代表当前目录
… 代表父级目录
注意:在Java工程中,默认相对路径从当前工程的根路径算起 也就是 ./src/…

		//获取绝对路径System.out.println(file.getAbsolutePath());System.out.println(dirFile.getAbsolutePath());//获取相对路径System.out.println(file.getPath());System.out.println(dirFile.getPath());//获取文件名System.out.println(file.getName());System.out.println(dirFile.getName());//获取当前工程的目录 user.dir 固定写法,是工程功能的keySystem.out.println(System.getProperty("user.dir"));//获取文件的大小 字节数System.out.println(file.length());System.out.println(dirFile.length());//获取最后一次修改文件的时间  注意:获取的时间是时间数 就是从1970年1月1日0:0:0;//秒是10位数 毫秒是13位数 1000毫秒=1秒System.out.println(file.lastModified());System.out.println(dirFile.lastModified());

时间戳

时间戳
日期格式
yyyy:4位年份 比如:2020
yy: 2位年份 比如:20
MM: 2位月份 比如:01 02 11
M: 1位月份 比如:1 11 3 4 12
dd: 2位日期 比如:01 09 10 12
d: 1位日期 比如1 2 4 18
HH: 24小时制,并且两位小时 比如:01 23
H: 24小时制,并且1位小时 比如:1 2 9 10
hh: 12小时制 ,但是是2位小时比如:01 10
h: 12小时制 ,但是是1位小时 比如:1 2 9 10
mm: 2位分钟
m: 1位分钟
ss: 2位秒数
s: 1位秒数
SSS: 毫秒

最后修改的时间转化
		//格式化对象SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd天 HH:mm:ss.SSS");//获取一个时间戳long lastFileChange=file.lastModified();String str=simpleDateFormat.format(lastFileChange);System.out.println(str);//时间戳转字符串在转Date格式Date date=null;try {date=simpleDateFormat.parse(str);} catch (ParseException e) {e.printStackTrace();}System.out.println(date);//将Date转为时间戳Date nowDate=new Date();System.out.println(nowDate.getTime());
删除文件或文件夹
package com.file;import java.io.File;public class Main {public static void main(String[] args) {//创建文件//1.文件路径String filePath="src/com/file/hero.txt";//2.根据路径 创建file文件对象File file=new File(filePath);//创建文件夹//1.文件夹路径String directoryPath="src/com/file/file/hero";//2.创建File对象File dirFile=new File(directoryPath);//删除文件或者文件夹//1.删除文件System.out.println(file.delete()?"文件删除成功":"文件删除失败");//2.删除文件夹System.out.println(dirFile.delete()?"文件夹删除成功":"文件夹删除失败");//注意:当文件夹为空的时候,才能被删除//获取子文件File srcFile = new File("src");File[] srcSubFiles =srcFile.listFiles();for (File f : srcSubFiles) {System.out.println(f);}//-------------------------------------------//获取src下的所有子文件System.out.println("获取src下的所有子文件");getAllFiles(srcFile);//删除文件夹File fileObj=new File("src/com/lanou/file");deleteAllFiles(fileObj);}//封装方法 用户获取所有的子文件public static void getAllFiles(File file) {//1.获取一级子文件File[] files=file.listFiles();//2.遍历一级子文件for (File f : files) {if(f.isDirectory()) {//说明子文件是文件夹System.out.println(f);getAllFiles(f);}else {//说明子文件是普通文件System.out.println(f);}}}//封装方法 删除文件public static void deleteAllFiles(File file) {if (file.isFile()) {//如果是文件 就直接删除file.delete();} else {//说明是文件夹对象for (File f : file.listFiles()) {deleteAllFiles(f);}//删除文件夹file.delete();}}}

文件过滤器

文件过滤器 本质就是遍历文件
两种
1.FileFilter
2.FilenameFilter

FileFilter
package com.filter;import java.io.File;
import java.io.FileFilter;public class FileFilterTest {public static void main(String[] args) {File resouceFile=new File("C:\\Users\\小江\\Desktop\\家具");//1.FileFilterFile[] fileArray1=resouceFile.listFiles(new FileFilter() {//匿名类@Overridepublic boolean accept(File pathname) {//返回值决定 是否把过滤到的文件放入数组 如果返回值为true机放入数组 为False则不放入//假设:我只需要图片if(pathname.getName().endsWith(".png")||pathname.getName().endsWith(".jpg")) {return true;}return false;}});for (File f : fileArray1) {System.out.println(f);}}}
FilenameFilter
package com.filter;import java.io.File;
import java.io.FilenameFilter;public class FileFilterTest {public static void main(String[] args) {File[] filenameArray = resouceFile.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {//dir  文件的目录,其实就是要过滤的文件目录//name 就是文件名,仅仅文件(夹)名字而已(不包含路径)System.out.println(dir);System.out.println(name);return name.endsWith(".jpg")||name.endsWith(".png");}});for (File f : filenameArray) {System.out.println(f);}}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部