`

黑马程序员22-2: 文件(流)操作,目录,属性,过滤器FileFilter优化与使用

 
阅读更多
------- android培训 java培训、期待与您交流!-------



constructorDemo:
package cn.itcast.io.p2.file.demo;

import java.io.File;

public class FileDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		constructorDemo();
	}

	public static void constructorDemo() {
		
		//可以将一个已存在的,或者不存在的文件或者目录封装成file对象。
		//不创建文件,只是创建文件对象而已
		File f1 = new File("c:\\a.txt");
		
		File f2 = new File("c:\\","a.txt");
		
		File f = new File("c:\\");
		
		File f3 = new File(f,"a.txt");
		//属性,跨平台
		File f4 = new File("c:"+File.separator+"abc"+File.separator+"a.txt");
		System.out.println(f1);
	}
}

FileListDemo :
package cn.itcast.io.p2.file.demo;

import java.io.File;

import cn.itcast.io.p2.filter.FilterByHidden;
import cn.itcast.io.p2.filter.SuffixFilter;

public class FileListDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		listDemo_2();
	}
	public static void listDemo_3() {
		
		File dir = new File("c:\\");
		//new使用过滤器接口,返回隐藏文件,
		File[] files = dir.listFiles(new FilterByHidden());
		
		for(File file : files){
			System.out.println(file);
		}
	}

	public static void listDemo_2() {
		
		File dir = new File("c:\\");
		////SuffixFilter返回任意传过来的扩展名,优化过滤器;FilterByJava返回指定扩展名的文件
		String[] names = dir.list(new SuffixFilter(".txt"));
		
		for(String name : names){
			System.out.println(name);
		}
		
	}



	public static void listDemo() {
		File file = new File("c:\\");
		
		/*
		 * 获取当前目录下的文件以及文件夹的名称,包含隐藏文件。
		 * 调用list方法的File对象中封装的必须是目录。
		 * 否则会发生NullPointerException
		 * 如果访问的系统级目录也会发生空指针异常。
		 * 
		 * 如果目录存在但是没有内容,会返回一个数组,但是长度为0.
		 * 
		 */
		String[] names = file.list();
		System.out.println(names.length);
		
		for(String name : names){
			System.out.println(name);
		}
	}
}


FileMethodDemo :
package cn.itcast.io.p2.file.demo;

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

public class FileMethodDemo {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
	
		/*
		 * File对象的常见方法。
		 * 
		 * 1,获取。
		 * 		1.1 获取文件名称。
		 * 		1.2 获取文件路径。
		 * 		1.3 获取文件大小。
		 * 		1.4 获取文件修改时间。
		 * 
		 * 2,创建与删除。
		 * 		
		 * 3,判断。
		 * 
		 * 4, 重命名
		 * 		
		 */
		getDemo();
//		createAndDeleteDemo();
//		isDemo();
//		renameToDemo();
		
//		listRootsDemo();
	}

	public static void listRootsDemo() {
		
		File file = new File("d:\\");
		//取空间大小
		System.out.println("getFreeSpace:"+file.getFreeSpace());
		System.out.println("getTotalSpace:"+file.getTotalSpace());
		System.out.println("getUsableSpace:"+file.getUsableSpace());
		
//		File[] files  = File.listRoots();		
//		for(File file : files){
//			System.out.println(file);
//		}
	}

	public static void renameToDemo() {
		
		File f1 = new File("c:\\9.mp3");
		
		File f2 = new File("d:\\aa.mp3");
		//剪切粘贴文件
		boolean b = f1.renameTo(f2);
		
		System.out.println("b="+b);
	}

	public static void isDemo() throws IOException{
		File f = new File("aaa");
		//创建目录
//		f.mkdir();
		//创建文件,如果文件已有存在,就不创建,不存在就创建
		f.createNewFile();
		
//		boolean b = f.exists();		
//		System.out.println("b="+b);
		// 最好先判断是否存在。 
		System.out.println(f.isFile());
		System.out.println(f.isDirectory());
		
		
	}

	public static void createAndDeleteDemo() throws IOException {
		
		File dir = new File("abc\\q\\e\\c\\z\\r\\w\\y\\f\\e\\g\\s");
		
//		boolean b = dir.mkdir();//make directory		
//		System.out.println("b="+b);
//		dir.mkdirs();//创建多级目录
		//删除目录
		System.out.println(dir.delete());
		
//		System.out.println(dir.delete());
		
		
//		文件的创建和删除。
//		File file = new File("file.txt");
		
		/*
		 * 和输出流不一样,如果文件不存在,则创建,如果文件存在,则不创建。 
		 * 
		 */
//		boolean b = file.createNewFile();		
//		System.out.println("b="+b);
		
//		boolean b = file.delete();
//		System.out.println("b="+b);
		
	}

	public static void getDemo(){
//		File file = new File("E:\\java0331\\day22e\\a.txt");
		File file = new File("a.txt");
		
		String name = file.getName();
		
		String absPath = file.getAbsolutePath();//绝对路径。
		//当前文件名(有可能含目录,即相对路径)
		String path = file.getPath();
		//文件路径长度
		long len = file.length();
		//更新时间
		long time = file.lastModified();
		
		Date date = new Date(time);
		
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
		
		String str_time = dateFormat.format(date);

		System.out.println("parent:"+file.getParent());
		
		System.out.println("name:"+name);
		System.out.println("absPath:"+absPath);
		System.out.println("path:"+path);
		System.out.println("len:"+len);
		System.out.println("time:"+time);
		System.out.println("str_time:"+str_time);
		
	}
}

FilterByHidden implements FileFilter:
package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FileFilter;

public class FilterByHidden implements FileFilter {
	
	@Override
	public boolean accept(File pathname) {
		//返回包含隐藏的文件
		return !pathname.isHidden();
	}

}


FilterByJava implements FilenameFilter:
package cn.itcast.io.p2.filter;

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

public class FilterByJava implements FilenameFilter {

	@Override
	public boolean accept(File dir, String name) {

//		System.out.println(dir+"---"+name);
		//返回所有扩展名为.txt的文件
		return name.endsWith(".txt");
	}

}


SuffixFilter implements FilenameFilter :
package cn.itcast.io.p2.filter;

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

public class SuffixFilter implements FilenameFilter {

	private String suffix ;
	public SuffixFilter(String suffix) {
		super();
		this.suffix = suffix;
	}
	//返回任意传过来的扩展名,优化过滤器
	@Override
	public boolean accept(File dir, String name) {

		return name.endsWith(suffix);
	}

}



------- android培训 java培训、期待与您交流!-------


详细请查看:http://edu.csdn.net/heima -------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics