File 类

File类File文件目录路径名的抽象表示形式;

一、字段摘要(静态的)

  pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。windos 里是; linux 是 :(String)

  pathSeparatorChar 与系统有关的路径分隔符。(char)

  separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。(string)

  separatorChar  与系统有关的默认名称分隔符。(char)

// 与系统有关的路径分隔符
// win ; linux :
System.out.println(File.pathSeparator); System.out.println(File.pathSeparatorChar); // 与系统有关的名称分隔符 System.out.println(File.separator); System.out.println(File.separatorChar);

二、 构造方法:(注意:不能判定改路径表示的文件是否存在

  1.File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

  2.File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。(好处:父路径下有很多文件 子路径传

  3.File(File parent, String child)根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。(好处:灵活利用父路径的方法

	public static void method02(){
		//封住路径b  注意:不能判定改路径表示的文件是否存在
		File file=new File("D:\demo1018\b.txt"); 
		System.out.println(file);
		//封住file对象 分开增加灵活性
		File file2=new File("D:\demo1018","a.txt"); 
		System.out.println(file2);
		//封住file对象 灵活利用父路径的方法
		File file3=new File(new File("D:\demo1018"),"a.txt"); 
		System.out.println(file3);
	}

三、 获取文件信息

  1. getAbsolutePath()获取绝对路径 返回值是String  注意:当不是绝对路径时 拼接eclipse 绝对路径

    2.getName()获取文件名 返回值是String

    3.获取路径 getPath() 返回值是String

  4.length()获取文件的大小 单位是字节 返回值是long整形

public static void method03(){
		//获取file类对象的绝对路径
		File file=new File("D:\demo1018\a.txt");
		String abpath=file.getAbsolutePath();
		System.out.println(abpath);
		//获取文件名
		String fileName=file.getName();
		System.out.println(fileName);
		//获取路径
		String filePath=file.getPath();
		System.out.println(filePath);
		//获取文件的大小 单位是字节 返回值是long整形
		System.out.println(file.length());
	}

  

四、操作 创建、删除文件 返回值是 Boolean

  1.createNewFile()  创建文件 注意如果文件存在不覆盖,不存在则创建    只能创建文件 不能创建文件夹

  2.delete()删除文件和文件夹

  3.mkdir() mkdir() 创建文件夹不能创建文件  注意mkdir()只能创建一级目录  mkdirs()可创建多级目录

  4.exists()判断文件或文件夹是否存在

  5.isDirectory() 判断是否是文件夹

  5.isFile()判断是否是文件

public static void method04() throws IOException{
		File file=new File("D:\demo1018\c");
		//创建文件 注意如果文件存在不覆盖,不存在则创建
		//file.createNewFile();
		//判断file对象封装的文件或文件夹是否存在
		//System.out.println(file.exists());
		//删除文件
		//file.delete();
		//创建文件夹不能创建文件  注意mkdir()只能创建一级目录  mkdirs()可创建多级目录
		//file.mkdirs();
		//判断是否是文件夹
		//System.out.println(file.isDirectory());
		//判断是否是文件
		//System.out.println(file.isFile());
		
	}

五、listFiles()方法  

  list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

  listFiles()   返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

1,指定的目录必须是存在的,

2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

   

public static void method05() throws IOException{
		File file=new File("D:\demo1018");
		//获取路径下的所有文件和文件夹下的String[]
		String[] files=file.list();
		/*//遍历
		for (String s: files) {
			System.out.println(s);
		}*/
		//获取路径下的所有文件和文件夹Files[]
		File[] files1=file.listFiles();
		//遍历
		for (File s: files1) {
			System.out.println(s);
			System.out.println(s.length());
		}
	}

六、文件过滤器

  运行图

  

1.自定义类继承FileFilter过滤器接口

public class MyFilter implements FileFilter {

	public boolean accept(File pathname) {
		//获取文件名
		//String fileName=pathname.getName();
		//将文件名转成小写
		//FileName=fileName.toLowerCase();
		return pathname.getName().toLowerCase().endsWith(".java");
	}
	
}

2.应用

public static void main(String[] args) {
		//创建File对象
		File file=new File("d:\demo1018");
		//调用文件过滤器过滤
		File files[]=file.listFiles(new MyFilter());
		//遍历
		for (File f : files) {
			System.out.println(f);
		}
	}

  

          

  

原文地址:https://www.cnblogs.com/zqy6666/p/12290214.html