您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页【JavaSE笔记】IO(二)File类

【JavaSE笔记】IO(二)File类

来源:榕意旅游网
本期知识点
File

1.概述:

2.构造方法:

public File(String pathname): 将该路径名称封装成了一个File实例
File(String parent, String child):将父文件夹或者目录里面的child文件封装成一个File实例
File(File parent, String child):根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
参数一:表示封装了File对象,该文件夹下的文件
	import java.io.File;
	public class File类的构造方法 {
	public static void main(String[] args) {
//		public File(String pathname):将该路径名称封装成了一个File实例
		File a = new File("e:\\File类的构造方法\\a\\a.txt");
		
// 		File(String parent, String child):将父文件夹或者目录里面的child文件封装成一个File实例
		File b = new File("e:\\b\\b.txt");
//		File(File parent, String child:参数一:表示封装了File对象,该文件夹下的文件
		File c = new File("e:\\demo");
		File d = new File(c,"a.txt");
	}
}

3.常用的成员方法

a.创建方法:
public boolean createNewFile()   表示创建文件,如果存在该文件,就不需要创建,会抛出异常!IOException
public boolean mkdir()   创建文件夹/目录,如果存在该文件夹,就不需要创建
public boolean mkdirs()   创建文件夹/目录,如果不存在该目录,就创建!
b.删除方法:
public boolean delete()   删除此抽象路径名表示的文件或文件目录
注意:
i.如果我们在写路径的时候,没有带盘符,那么默认是在当前项目路径下
ii.java中的删除不走回收站
iii.delete不能删除带有内容的文件夹,只能逐个删除
c.重命名方法:
public boolean renameTo(File dest)   重命名
两个文件的路径一致的情况下,只是改名字
两个文件的路径不一致的情况下,不但改名字,而且剪切
d.判断方法:
public boolean isAbsolute()   判断该路径是否是绝对路径
public boolean isFile()  判断此文件是否为一个标准文件
public boolean isHidden()   判断此抽象路径表示的文件是否是一个隐藏文件
public boolean canRead()   可读
public boolean canWrite()   可写
e.获取方法:
public String getAbsolutePath()   获取绝对路径
public STring getPath()   获取相对路径
public String getName()   获取文件或者目录的名称
public long length()   获取文件的长度

public long lastModified()   返回次抽象路径文件最后一次被修改的时间,返回的修改时间的一个毫秒值

import java.io.File;
import java.io.IOException;

//File类中常用的成员方法:
// 		public boolean createNewFile():表示创建文件,如果存在该文件,就不需要创建,会抛出异常!IOException
// 		public boolean mkdir():创建文件夹/目录,如果存在该文件夹,就不需要创建
// 		public boolean mkdirs():创建文件夹/目录,如果不存在该目录,就创建!
public class File类中常用的方法_创建 {
	public static void main(String[] args) throws IOException {
		//需求:在e盘下创建一个文件
		File a = new File("e:\\File类中常用的方法__创建\\b.txt");
		System.out.println(a.createNewFile());
		
		File b = new File("e:\\File类中常用的方法__创建");
		System.out.println(b.mkdir());
		
		File c = new File("e:\\File类中常用的方法__创建\\创建");
		System.out.println(c.mkdirs());
	}
}
import java.io.File;
import java.io.IOException;

public class File类中常用的方法_删除 {
	public static void main(String[] args) throws IOException {
		File a = new File("a.txt");
		a.createNewFile();
//		没有盘符情况下创建目录
		File b = new File("aa\\bb\\cc");
		System.out.println("mkdirs:"+b.mkdirs());
//		删除aa目录
		System.out.println("delete:"+b.delete());
//		只能逐个删除
		File c = new File("aa\\bb");
		System.out.println("delete:"+c.delete());
		
		File d = new File("aa");
		System.out.println("delete:"+d.delete());
	}
}
import java.io.File;

public class File类中常用的方法_重命名 {
	public static void main(String[] args) {
		//封装当前项目下的图片文件
		File a = new File("R6S_Wallpaper-01_1920x1080.jpg");
		//新建一个File对象
		File b = new File("D:\\Pictures\\Saved Pictures\\YF.jpg");
		//调用重命名方法
		System.out.println("renameTo:"+a.renameTo(b));
	}
}

import java.io.File;

/*File类中提供了一些判断功能:
	 		public boolean isAbsolute():判断该路径是否是绝对路径
	 		public boolean isFile()判断此文件是否为一个标准文件
	 		public boolean isHidden():判断此抽象路径表示的文件是否是一个隐藏文件
	  		public boolean canRead():可读
	  		public boolean canWrite():可写*/
public class File类中常用的方法_判断 {
	public static void main(String[] args) {
		//创建File文件对象
		File f = new File("f2.txt");
		System.out.println("isAbsolute:"+f.isAbsolute());
		System.out.println("isFile:"+f.isFile());
		System.out.println("isHidden:"+f.isHidden());
		System.out.println("canRead:"+f.canRead());
		System.out.println("canRead:"+f.canWrite());
	
	}
}

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class File类中常用的方法_获取 {
	public static void main(String[] args) {
//		封装路径
		File a = new File("aa\\a.txt");
//		public String getAbsolutePath():获取绝对路径
		System.out.println("getAbsolutePath:"+a.getAbsolutePath());
		
//		public STring getPath():获取相对路径
		System.out.println("getPath:"+a.getPath());
		
//		public String getName():获取文件或者目录的名称
		System.out.println("getName:"+a.getName());
		
//		public long length():获取文件的长度
		System.out.println("length:"+a.length());
		
//		public long lastModified():返回次抽象路径文件最后一次被修改的时间,返回的修改时间的一个毫秒值
		System.out.println("lastModified:"+a.lastModified());
		Date d = new Date(a.lastModified());
		SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String s = sd.format(d);
		System.out.println(s);
	}
}

4.File类的高级获取功能:

public String[] list()   该方法是获取指定盘符下的所有的文件以及文件夹的名称数组

public File[] listFiles()   获取指定盘符下的所有文件以及文件夹的File对象数组(常用)


import java.io.File;

public class File类的高级获取功能 {
	public static void main(String[] args) {
		//需求获取F盘下所有的文件以及文件夹名称
		//将F盘的路径封装成一个File对象
		File a = new File("F:\\");
		
//public String[] list():该方法是获取指定盘符下的所有的文件以及文件夹的名称数组
		String []sa = a.list();
//		增强for遍历
		for (String s : sa) {
			System.out.println(s);
		}
		System.out.println("-----------------");
		
//public File[] listFiles():获取指定盘符下的所有文件以及文件夹的File对象数组(常用)
		File []fa = a.listFiles();
		//只要是对象就必须左非空判断
		if(fa!=null){
			for (File d : fa) {
				System.out.println(d.getName());
			}
		}
	}
}


5.应用

判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
a.首先获取所有,然后遍历,判断,最终输出,使用文件名称过滤.
b.当我们获取的时候,就已经有结果,要想实现这样一样结果:就必须学习一个接口:
FilenameFileter
public File[] listFiles(FileFilter filter)

public String[] list(FilenameFilter filter)(这个文件名称过滤器中常用) 形式参数如果是一个接口对象:其实需要传递的是子实现类对象/匿名内部类

import java.io.File;

public class 练习1_方式一 {
	public static void main(String[] args) {
		//把e盘封装成对象
		File f = new File("e:\\");
		//获取当前盘下所有文件夹以及文件的File数组
		File[] fa = f.listFiles();
		//非空判断
		if(fa!=null){
			for (File file : fa) {
				//判断是否为文件
				if(file.isFile()){
					//继续判断 是不是.jpg
					if(file.getName().endsWith(".jpg"));
						System.out.println(file.getName());
				}
			}
		}
		
	}
}	

import java.io.File;
import java.io.FilenameFilter;

/*方式2:当我们获取的时候,就已经有结果,要想实现这样一样结果:就必须学习一个接口:
		FilenameFileter
public File[] listFiles(FileFilter filter)
public String[] list(FilenameFilter filter)(这个文件名称过滤器中常用)
 
形式参数如果是一个接口对象:其实需要传递的是子实现类对象/匿名内部类*/
 
public class 练习1_方式二 {
	public static void main(String[] args) {
		//封装E盘
		File a = new File("e:\\");
		//获取当前盘符下所有文件以及文件夹的String数组
		String [] s = a.list(new FilenameFilter() {
			//File dir :指定的文件
			//name:文件名称列表
			@Override
			public boolean accept(File dir, String name) {
//				System.out.println(dir+"---"+name);
				//创建File对象
				File f = new File(dir,name);
				//首先判断是否是文件
				boolean flag = f.isFile();
				//判断是否是.jpg
				boolean flag2 = name.endsWith(".jpg");
				return flag && flag2;
			}
		});
		for (String ss : s) {
			System.out.println(ss);
		}
	}
}


因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务