java基础之File类

File类是java.io包中很重要的一个类;

File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;

File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等;

File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。

---------------------------------------------------------------------------------------------------

创建File对象三种方法:

//在当前目录下创建一个与aaa.txt文件名相关联的文件对象
File f1 = new File("aaa.txt");
//指明详细的路径以及文件名,请注意双斜线或用反斜杠
File f2 = new File("D:\\Java\\Hello.java");
//指明详细的路径以及目录名,请注意双斜线
File f3 = new File("D:/Java");

---------------------------------------------------------------------------------------------------

创建功能
public boolean createNewFile()创建文件 如果存在这样的文件,就不创建了
public boolean mkdir()创建文件夹 如果存在这样的文件夹,就不创建了
public boolean mkdirs()创建文件夹,如果父文件夹不存在,会帮你创建出来
删除功能
public boolean delete()
重命名功能
public boolean renameTo(File dest)
判断功能
 public boolean isDirectory():判断是否是目录
 public boolean isFile():判断是否是文件
 public boolean exists():判断是否存在
 public boolean canRead():判断是否可读
 public boolean canWrite():判断是否可写
 public boolean isHidden():判断是否隐藏
基本获取功能
public String getAbsolutePath():获取绝对路径
public String getPath():获取相对路径
public String getName():获取名称
public long length():获取长度。字节数
public long lastModified():获取最后一次的修改时间,毫秒值

高级获取功能
public String[] list()将目录下的子目录及文件的名字,返回到String数组中
public File[] listFiles()将目录下的子目录及文件的实例返回到File数组中
具体代码:

package com.etc.day15.file;

import java.io.File;

public class FileDemo_1 {

	public static void main(String[] args) {
		
		//高级获取功能将目录下的子目录及文件的名字,返回到String数组中
		File file = new File("e:/job");
		
		String [] filelist = file.list();
		for(String files:filelist){
			System.out.println(files);
		}
		
		System.out.println("---------------");
		
		File[] file1 =file.listFiles();
		for(File files1:file1){
			System.out.println(files1.getName());
			
		}
		
	}
	
}

package com.etc.day15.file;

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

public class FileDemo {
	public static void main(String[] args) {
		
		File file = new File("fileDemo");
		long time = file.lastModified();//返回最后修改的毫秒数
		Date date = new Date(time);
		DateFormat dateformat = new SimpleDateFormat("YYYY-MM-dd kk:mm:ss");
		String str = dateformat.format(date);
		System.out.println("最後修改日期:"+str);
		System.out.println("文件名稱:"+file.getName());
		System.out.println("文件絕對路徑:"+file.getAbsoluteFile());
		System.out.println("文件相對路徑:"+file.getPath());
		System.out.println("是否是文件:"+file.isFile());
		System.out.println("是否为 目录:"+file.isDirectory());
		
		File file1 = new File("e:/b/a/c");
		System.out.println("是否存在目录"+file1.exists());//目录是否存在,如果存在返回true
		System.out.println("是否创建目录"+file1.mkdir());//创建文件夹。如果存在这样的文件夹就不创建了,已经存在返回false
		System.out.println("是否创建目录"+file1.mkdirs());//创建文件夹,如果父文件夹不存在会帮你创建出来,已经存在返回false
		
		//System.out.println("删除文件:"+file.delete());
		
	}

}

文件过滤:

文件名过滤器接口:interface FilenameFilter
常用于过滤不符合规格的文件名
需重写accept方法自定义过滤规则,如下:

boolean  accept(File dir, String name)
--  dir:表示文件的当前目录。
--  name:表示当前目录的子目录或者文件的名字。
File类中提供了使用文件名过滤器遍历目录的方法:

String[]  list(FilenameFilter filter)
--  把满足指定过滤条件的文件和目录,返回到String数组中。
File[]  listFiles(FilenameFilter filter)
--  把满足指定过滤条件的文件和目录,返回到File数组中。

package com.etc.day15.file;

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

public class FileFilter {
	public static void main(String[] args) {
		
		File file = new File("e:/驱动");
		
		File [] filelist = file.listFiles(new FilenameFilter(){

			@Override
			public boolean accept(File dir, String name) {
				
				if(name.endsWith(".zip")){
					return true;
					
				}
				
				return false;
			}});
		//遍歷
		for(File f:filelist){
			System.out.println(f.getName());
		}
		
		
		
		
		
		
		
		
		
	}

}







posted @ 2017-08-20 18:46  杰醍奋  阅读(102)  评论(0编辑  收藏  举报