java中File文件的基本方法以及操作

java中File文件的基本方法以及操作

定义: File类:文件和目录路径名的抽象表示。这个文件或者目录可以不存在,仅仅是通过File类表示文件或者文件的路径。
构造方法:
File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File(String parent, String child) :参数1:指定的目录名称 参数2:子路径
File(File parent, String child)
从父抽象路径名和子路径名字符串创建新的 File实例。
例子:

	public static void main(String[] args) {
		//e:\demo\苏越.jpg
		
		//File(String pathname)  (推荐这种方式表示一个文件或者目录的抽象表现形式!)
		File file1 = new File("e:\\demo\\苏越.jpg") ;
		
		//File(String parent, String child)  :参数1:指定的目录名称 参数2:子路径
		File file2 = new File("e:\\demo", "苏越.jpg") ;
		
		//File(File parent, String child) 
		File file3 = new File("e:\\demo") ;
		File file4 = new File(file3,"苏越.jpg") ;
		
		//这个三个效果是一样的
	}

File的创建功能:
public boolean createNewFile() IOException:表示创建文件,如果文件已经存在了,不会创建
true:表示创建成功
IOException:IO异常,创建的过程中出现问题.(编译时期异常)
public boolean mkdir():创建目录(文件夹),如果文件夹(目录)已经存在了,不会创建
public boolean mkdirs():创建目录(文件夹),如果不存在目录(文件夹),就会创建
例子:

	public static void main(String[] args) throws IOException {
		
		//d:\aa.txt
		//创建File对象:描述当前路径
		File file = new File("d:\\aa.txt") ;
		System.out.println("createNewFile():"+file.createNewFile());
		
		//注意事项:在某个文件夹(目录)下创建文件的话,前提是存在这个文件夹
		//File file2 = new File("d:\\test_01\\bb.txt") ; //java.io.IOException: 系统找不到指定的路径。test_01:不存在
		//System.out.println("createNewFile():"+file2.createNewFile());
		
		//d:\test_01
		File file2 = new File("d:\\test_01") ;
		System.out.println("mkdir():"+file2.mkdir());
		
		//d:\\test_01\\bb.txt"
		File file3 = new File("d:\\test_01\\bb.txt") ;
		System.out.println(file3.createNewFile());
		
		//创建一个文件没有带盘符,去哪里了? ---> 在当前项目路径下
		File file4 = new File("a.txt") ;
		System.out.println(file4.createNewFile());
		
		//mkdirs()
		File file5 = new File("aa\\bb\\cc") ;
		System.out.println(file5.mkdirs());
		
	}

File类的删除功能:
public boolean delete()
删除由此抽象路径名表示的文件或目录。
注意事项:
如果此路径名表示目录,则目录必须为空才能删除。
重命名功能:
public boolean renameTo(File dest)
例子:

	public static void main(String[] args) {
		//项目路径下a.txt
		//删除这个文件
		File file = new File("a.txt") ;
		System.out.println("delete():"+file.delete());
		
		//要删除aa\bb\cc目录
		//File file2 = new File("aa\\bb\\cc") ;
		//cc这个目录不为空,没有办法直接删除
		File file2 = new File("aa\\bb\\cc\\aa.txt") ;
		System.out.println(file2.delete());
		File file3 = new File("aa\\bb") ;
		File file4 = new File(file3,"cc") ;
		System.out.println(file4.delete());
		System.out.println("----------------------------------");
		
		//要将当前d盘下的某个文件大司命.jpg改名为 少司命.jpg
		//第一种情况:目标File对象描述的文件路径和当前原文件路径一致:重命名
		//File fileStr = new File("d:\\大司命.jpg") ;
		//public boolean renameTo(File dest)
		//File fileStr2 = new File("d:\\少司命.jpg");
		//System.out.println("renameTo():"+fileStr.renameTo(fileStr2)) ;
		
		//第二种情况:目前File对象描述的文件路径和当前原文件的路径不一致:重命名并且剪切
		File fileStr = new File("d:\\少司命.jpg") ;
		File fileStr2 = new File("大司命.jpg") ;
		//public boolean renameTo(File dest)
		System.out.println("renameTo()"+fileStr.renameTo(fileStr2)) ;
	}

判断功能:
public boolean isDirectory() :判断当前File对象描述路径形式是否是一个文件夹
public boolean isFile():是否是文件
public boolean exists():判断是否存在
public boolean canRead():是否可读
public boolean canWrite():是否可写
public boolean isHidden():是否隐藏
其他功能:
public String getAbsolutePath():绝对路径 d:\demo\helloworld.java
public String getPath():相对路径 a.txt
public String getName():获取文件/目录的名称
public long length():获取当前文件内容的长度
public long lastModified():最后一次修改文件的文件的时间毫秒值
例子:

public static void main(String[] args) {
		
		//创建File对象
		File file = new File("a.txt") ;
		
		System.out.println(file.isDirectory());
		System.out.println(file.isFile());
		System.out.println(file.exists());
		System.out.println(file.canRead());
		System.out.println(file.canWrite());
		System.out.println(file.isHidden());
		System.out.println("---------------------");
		//D:\JavaEE_2003\day21\code\JavaSE_2020_6_23\a.txt
		System.out.println(file.getAbsolutePath());
		System.out.println(file.getPath());//a.txt
		System.out.println(file.getName());
		System.out.println(file.length());//5
		System.out.println(file.lastModified());
		
		//1592901453289 long-- Date-->String类型日期文本  (格式化)
		//创建日期格式对象
		long time = 1592901453289L ;
		Date date = new Date(time) ;
		//Date----->String日期文本格式 
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;
		String dateStr = sdf.format(date) ;
		System.out.println(dateStr);//2020-06-23 16:37:33
		
	}

File类的高级功能:
File类的高级功能:
public File[] listFiles()由该抽象路径名表示的目录中的文件。
public String[] list() :表示该抽象路径表示目录和文件
例如:获取E盘下所有的文件夹以及文件名称

	public static void main(String[] args) {
		//e:\\
		File file = new File("d:\\") ;
		
		//public File[] listFiles()
		File[] fileArray = file.listFiles() ;
		//防止空指针异常,判断fileArray不为null,在执行遍历操作
		if(fileArray !=null) {
			//遍历File数组
			for(File f :fileArray) { //所有的文件对象(可以描述一个文件夹/文件)
				
				//获取所有名称
				System.out.println(f.getName());
			}
		}
		System.out.println("--------------------------");
		//public String[] list()
		String[] strArray = file.list() ;
		if(strArray !=null) {
			for(String s : strArray) {
				System.out.println(s);
			}
		}
		
	}

例如:在指定的某个盘符下: d:\ , 获取所有的后缀名为.jpg结尾的文件
第一种方法:
File[] listFiles()---->遍历File数组---->经过两次—>获取内容

	public static void main(String[] args) {
		
		//d:\\
		//将上面路径封装成File对象
		File file = new File("d:\\") ;
		
		//public File[] listFiles()
		File[] fileArray = file.listFiles() ;
		if(fileArray!=null) {
			//遍历获取每一个字符串对象
			for(File f: fileArray) {
				//判断它是否是文件
				if(f.isFile()) {
					//文件
					//再次判断这个文件是否以.jpg结尾
					if(f.getName().endsWith(".jpg")) {
						//输出当前这个文件名称
						System.out.println(f.getName());
					}
				}
			}
		}
		
	}

方法二:
/*
public String[] list(FilenameFilter filter) :获取指定目录下的所有的文件以及文件夹的列表
获取的时候就已经在列表---->重写接口accept(Fiel dir,String name)
public File[] listFiles(FilenameFilter filter) :使用文件名称过滤器将所有目录以及文件存储到File数组中

文件名称过滤器FilenameFilter:接口
boolean accept(File dir, String name):是否将指定File对象下文件添加到列表中,
取决于的返回结果,如果是true,添加到列表中

	public static void main(String[] args) {
//		在指定的某个盘符下: d:\\ , 获取所有的后缀名为.jpg结尾的文件
		
		File file = new File("d:\\") ;	
		
		// public String[] list(FilenameFilter filter) //形式参数是接口--->需要改接口的子类对象
		
		
		String[] strArray = file.list(new FilenameFilter() {获取的时候,就已经得到列表
			
			@Override
			public boolean accept(File dir, String name) { //参数1:File对象  参数2:文件名称
				//return false;
				//返回值是true,需要将dir下面的name添加String[]数组中
				//System.out.println(dir+"----"+name);
				//return true;
				
				//分布走
				//File file = new File(dir,name) ;
				//boolean flag1 = file.isFile() ;//判断file是否是文件
				//boolean flag2 = name.endsWith(".jpg") ;
				//return flag1 && flag2 ;
				
				//一步走
				return new File(dir,name).isFile() && name.endsWith(".jpg") ;
			}
		}) ; 
		
		for(String s : strArray) {
			System.out.println(s);
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值