Java File类的了解与认识

内容先览

  • File类的介绍
  • File类的构造方法
  • File类的常用方法
  • File类的总结

File类的介绍

  • 代表物理盘符中的一个文件或者文件夹
  • 是Object类的直接子类,说明本身就是个顶级类
  • 实现了Serializable序列化结构
  • 实现了Comparable排序接口
  • 在UNIX平台上,一个绝对路径名的前缀总是"/"。相对路径名没有前缀。抽象路径名表示根目录有前缀"/"和空名序列
  • 微软的Windows平台,一个路径名包含驱动器说明符由盘符依次":“可能随后”\"如果路径名是绝对的前缀。也可用’/’
  • 这里使用’/'统一
  • 一系列对文件的操作,包括访问权限,是否是目录,添加删除等等。

File类的构造方法

File(File parent, String child) 
创建从一个家长的抽象路径名和一个孩子的路径字符串的新 File实例。  
File(String pathname) 
通过将给定的路径名的字符串转换成一个抽象路径名创建一个新的 File实例。 
File(URI uri) 
通过将给定的 file: URI到一个抽象路径名创建一个新的 File实例。  
public class Test{
	public static void main(String[] args){
		File file = new File("c:/src/target.txt");
		
		File file1 = new File("c://src","target.txt");
		
		File parent = new File("d:");
		File file2 = new File(parent,"target.txt");			
	}
}

File常用方法

boolean canExecute() 
测试应用程序是否可执行文件的路径名表示的抽象。  
boolean canRead() 
检查应用程序是否可以读取文件的抽象路径名记。  
boolean canWrite() 
检查应用程序是否可以修改文件的抽象路径名记。  
int compareTo(File pathname) 
比较两个抽象路径名的字典。  
boolean delete() 
删除文件或目录的路径名表示的抽象。  
void deleteOnExit() 
请求的文件或者目录的抽象路径名记被删除时,虚拟机终止。  
boolean equals(Object obj) 
测试这个抽象路径名与给定对象的平等。  
boolean exists() 
检查文件或目录是否存在这种抽象路径名记。  
File getAbsoluteFile() 
返回此抽象路径名的绝对形式。  
String getAbsolutePath() 
返回此抽象路径名的绝对路径名的字符串。  
String getName() 
返回的名称的文件或目录的路径名表示的抽象。  
String getParent() 
返回此抽象路径名的父路径名的字符串,或 null如果路径名不叫父目录。  
File getParentFile() 
返回此抽象路径名的母抽象路径名,路径名或 null如果这不叫父目录。  
String getPath() 
转换这个抽象路径名为路径名的字符串。  
boolean isAbsolute() 
测试是否这个抽象路径名是绝对的。  
boolean isDirectory() 
测试文件是否通过这种抽象路径名表示是一个目录。  
boolean isFile() 
测试文件是否通过这种抽象路径名表示的是一种正常的文件。  
boolean isHidden() 
测试文件是否通过这种抽象路径名的命名是隐藏文件。  
long lastModified() 
返回文件的抽象路径名表示上次修改时间。  
long length() 
返回文件的抽象路径名表示的长度。  
String[] list() 
返回的字符串在该目录下的抽象路径名的文件和目录命名为数组。  
String[] list(FilenameFilter filter) 
返回的字符串在该目录下的抽象路径名,满足指定的过滤器表示文件和目录命名数组。  
File[] listFiles() 
返回表示抽象路径名的目录中的文件的路径名表示抽象的数组。  
File[] listFiles(FileFilter filter) 
返回表示的抽象路径名的文件和目录的目录,这个抽象路径名满足指定过滤器表示数组。  
File[] listFiles(FilenameFilter filter) 
返回表示的抽象路径名的文件和目录的目录,这个抽象路径名满足指定过滤器表示数组。  
static File[] listRoots() 
列出可用的文件系统根。  
boolean mkdir() 
创建该目录下的抽象路径名命名。  
boolean mkdirs() 
创建该目录下的抽象路径名命名,包括任何必要的但不存在父目录。  
boolean renameTo(File dest) 
重命名文件的抽象路径名记。  

使用示例

public class TestFile {
	public static void main(String[] args) throws Exception {
		//File f = new File("src/txt/char.txt");
		File f1 = new File("src/txt");
		//System.out.println(f.canExecute());//所有可以打开的文件或文件夹,都是可执行的!
		//System.out.println(f.canWrite());//支持你编辑
		//System.out.println(f.canRead());//判断是否可读
		//System.out.println(f.isDirectory());//判断是否是文件夹
		//System.out.println(f.createNewFile());// 新建一个文件如果不存在时
		//System.out.println(f.delete());
		//f.deleteOnExit();//虚拟机终止时请求删除路径名表示的文件或目录
		//System.out.println(f.getAbsolutePath());//绝对路径
		//System.out.println(f.getPath());
		//System.out.println(f.getName());// 文件名 名字 . 后缀
		//System.out.println(f.getFreeSpace()/1024/1024/1024 + "GB"); //获取硬盘空闲空间
		//System.out.println(f.getTotalSpace()/1024/1024/1024 + "GB"); // 总空间
		//System.out.println(f.getParent());// 指定文件上级目录
		//System.out.println(f.isDirectory()+"目录:"
		//		+ f.isFile() + "文件:"
		//		+ f.isHidden() + "是否是一个隐藏文件"
		//		+ f.exists()+"是否存在");
		//System.out.println((System.currentTimeMillis()-f.lastModified())/1000/60);//返回最后一次修改时间
		//System.out.println(f.length());
		// mkdir
		// mkdirs // 只能创建目录
		//f.renameTo(f1);
		
		// String[] fileNames = f1.list(); 只是那名字
		File[] f3 =  f1.listFiles();//
		// 过滤器
		f1.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				// TODO Auto-generated method stub
				if(pathname.isFile() && pathname.getName().endsWith(".txt")) {
					return true;
				}
				return false;
			}
		});
		// lambda表达式
		File[] f4 = f1.listFiles(((dir,name)->name.endsWith(".txt") || new File(name).isDirectory()));
		for (File file : f4) {
			System.out.println(file.getName());
		}
		/*
		 * for (File file : f3) {
		 * 
		 * if(file.getName().substring(file.getName().length()-4).equals(".txt") ) {
		 * System.out.println(file.getName()+":"+file.isFile()); }
		 * 
		 * }
		 */
	}
	
}

File总结

File类在使用对文件信息的查询、对文件权限、文件大小、文件遍历、文件/文件夹创建与删除十分有用,其与I/O框架的结合十分紧密进行许多功能的操作,譬如说上传文件等功能。建议多写写其方法。扒扒API

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章