`
strawberry2013
  • 浏览: 18099 次
文章分类
社区版块
存档分类
最新评论

黑马程序员_IO流_File类

 
阅读更多

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


File类常用方法:
static String File.seprator 静态成员获取分隔符,如windows \
String toString() 返回此抽象路径名的路径名字符串

boolean createNewFile() 当且仅当不存在指定名称的文件时,创建一个新的空文件。如果存在,则false
boolean mkdir() 创建指定的一级目录
boolean mkdirs() 创建目录,包括所有必需但不存在的父目录(多级目录)。

boolean isAbsolute() 测试是否为绝对路径名。
boolean isDirectory()当且仅当此存在,且是目录才返回true,故先进行exists判断是否存在
booleanisFile() 当且仅当此存在,且是文件才返回true,故先进行exists判断是否存在
boolean isHidden() 测试是否是一个隐藏文件。UNIX上,如果文件名以句点字符 ('.') 开头,则认为该文件被隐藏。Windows系统上,如果在文件系统中文件被标记为隐藏,则认为该文件被隐藏。

public String getParent()如果此路径名没有上层父目录,则返回 null。
long lastModified() 返回文件最后一次被修改的时间。
longlength() 返回文件的大小。
boolean renameTo(File dest) 重新命名此表示的文件
staticFile[] listRoots() 静态方法列出可用的文件系统根,即盘符

public booleancanExecute() 当且仅当抽象路径名存在且允许应用程序执行文件时返回 true
boolean canRead() 测试是否可读
boolean canWrite() 测试是否可修改
boolean exists() 测试此文件或目录是否存在。

boolean delete() 删除文件或目录。
void deleteOnExit() 在虚拟机终止时,请求删除文件或目录。没有返回值


/*
文件名过滤
是通过覆盖accept方法,返回布尔值来确定该文件是否符合要求
Strawberry2013-5-5
*/
import java.io.*;
class FileDemo
{
	public static void main(String[] args) throws IOException
	{
		File dir = new File("D:\\Videos\\Movies");

		String[] files = dir.list(new MyFilenameFilter());//String[] list(FilenameFilter filter) 
												//自定义一个过滤器,通过覆盖过滤器的accept方法来达到过滤的目的
		for(String file: files)					//过滤是自动调用accept发来来达到目的的。
		{
			System.out.println(file);
		}
	}

}

class MyFilenameFilter implements FilenameFilter		//继承文件名过滤器FilenameFilter
{
	public boolean accept(File dir, String name)		//dir为被找到文件所在的目录,name为文件的名称
	{													//当且仅当该名称应该包含在文件列表中时返回 true
		return name.endsWith(".rmvb");
	}
}


/*
遍历文件目录,将符合要求的文件名存储至本地文件

Strawberry2013-5-5
*/
import java.io.*;
import java.util.*;

class FileDemo
{
	public static void main(String[] args) throws IOException
	{
		File dir = new File("E:\\Android-Document\\Video");
		ArrayList<File> arr = new ArrayList<File>();	//定义一个集合,存放符合要求的File文件
		BufferedWriter bufw = new BufferedWriter(new FileWriter("info.ini"));

		//long d1 = System.currentTimeMillis();
		method(dir,arr);
		//long d2 = System.currentTimeMillis();
		//System.out.println("111:::"+ (d2-d1));	//计算遍历实际
		for(File file: arr)
		{
			bufw.write(file.toString());	//	将集合中存储的信息,存储到文件中
			bufw.newLine();
			bufw.flush();
		}
		bufw.close();
		//long d3 = System.currentTimeMillis();
		//System.out.println("111:::"+ (d3-d2));	//计算存储时间
	}
	public static void method(File dir, ArrayList<File> arr)//递归调用函数
	{
		File[] files = dir.listFiles();										
		for(File file: files)				
		{
			if (file.isDirectory())
			{
				method(file, arr);
			}
			if(file.toString().endsWith(".avi"))	//以符合要求
				arr.add(file);						//向集合中添加
		}
		return;
	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics