首页 > 代码库 > IO File学习

IO File学习

1.递归遍历所有文件 并在控制台输出 

2.获取某个绝对地址文件目录下的以txt结尾的文件 递归遍历获取file存到list中 然后用用流写到自己创建的文件中

import java.io.*;

import java.util.ArrayList;
import java.util.List;



public class file {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File dir = new File("F:\\7X");
		//dfs(dir, 0);递归文件目录
		List<File> list = new ArrayList<File>();//获取所有txt文件
		dfs2(dir, list);
		test(list, "F:wzz2.txt");
	}
	static void put(int x){
		StringBuilder sb = new StringBuilder();
		for(int i = 0; i < x; i++){
			sb.append(' ');
		}
		System.out.print(sb.toString());
	}
	static void dfs(File dir, int dep){
		put(dep);
		System.out.println(dir.getName());
		if(dir.isFile())
			return;
		File[] fs = dir.listFiles();
		for(int i = 0; i < fs.length; i++){
			dfs(fs[i], dep+1);
		}
	}
	static void dfs2(File dir, List<File> list){
		if(dir.isFile())
		{
			if(dir.getName().endsWith("txt"));
				list.add(dir);
			return;
		}
		File[] fs = dir.listFiles();
		for(File f : fs){
			dfs2(f, list);
		}
	}
	static void test(List<File> list, String name){
		BufferedWriter bw = null;
		try {
			bw = new BufferedWriter(new FileWriter("F:\\fd4.txt"));
			for(File f : list){
				bw.write(f.getAbsolutePath());
				bw.newLine();
				bw.flush();
			}
		} catch (IOException e) {
			// TODO: handle exception
		}
		finally{
			try {
				if(bw!=null)
					bw.close();
			} catch (IOException e2) {
				// TODO: handle exception
			}
		}
	}
}

流只能操作数据。

 

File 

用来将文件或者文件夹封装成对象。

方便文件与文件夹进行操作

File对象可以作为参数传递给流的构造函数。

可以将已有的和已出现的文件或者文件夹封装成对象

File a = new File(“a.txt”);

File类常见方法:

创建

boolean creatNewFile() :当且仅当不存在具有此抽象路径名指定的名称的文件时,地创建由此抽象路径名指定的一个新的空文件

boolean mkdir():创建文件夹。

boolean mkdirs():创建多级文件夹

删除

boolean delete():如果文件正在使用,则删除不了返回false

void deleteOnExit():在程序退出时删除指定文件

判断

boolean exists():文件是否存在

ifFile ()         

isDirectory()

ifHidden()

isAbsolutePath()

获取信息  

getName()

getPath()

getParent():该方法返回的是绝对路径中的父目录,如果获取的是相对路径,返回null 如果相对路径中有上一层目录那么该目录就是返回结果。

getAbsolutePath()

lastModidied()

length():在判断文件对象是否是文件或者目的是,必须要判断该文件对象封装的内容是否存在。通过exists判断,(因为文件或文件夹不存在也会返回false