`

黑马程序员--java基础复习--IO--File

 
阅读更多

 

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! --------------------- 

File是IO流中专门操作文件对象的类,这个类可以描述计算机中每个硬盘中的每个文件以及文件夹的属性,比如名字、是否为文件夹、是否存在、文件路径等。这是一个比较重要的类。

 

File类常用的方法:

  •   boolean  canExecute() 判断文件是否可以被执行
  •   boolean  exists() 判断文件是否存在
  •   boolean  isAbsolute()  判断文件路径是否为绝对路径
  •   boolean   isDirectory() 判断是否为文件夹
  •   boolean   isHidden() 判断是否为隐藏文件
  •   boolean   isFile() 判断是否为一个标准文件
  •   boolean   createNewFile() 创建文件,如果该路径已经存在文件,则返回false
  •   boolean   delete()  删除此抽象路径名表示的文件或目录  如果是目录的话,目录为空才能删除
  •   boolean   deleteOnExit() 在虚拟机退出的时候删除该抽象路径名表示的文件或目录,删除成功则返回true。
  •   File  getAbsoluteFile() 返回该抽象路径名的绝对路径形式
  •   String   getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
  •   String   getName() 返回由此抽象路径名表示的文件或目录的名称。
  •   String   getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null
  •   String  getPath() 将此抽象路径名转换为一个路径名字符串。
  •   boolean  mkdir() 创建此抽象路径名指定的目录。
  •   boolean  mkdirs()  创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

还有各种set操作权限比如说可读可写、只读、只写等的方法。

 

File类中还提供了一个通用的文件路径分隔符,可以在不同的系统上使用,这是一个静态的成员变量

   File.separator  这个用的比较多

格式就是比方说要建立一个D盘下的log.txt则可以写

File file = new File("D:" + File.separator + "log.txt");

file.createNewFile;

 

这里要注意,创建File对象只是创建了一个文件的路径对象,文件存不存在是不知道的。

 

File类的最常见的用处就是找文件了,比方说找到D盘下所有的java文件并放到一个文档里边,这里边就要用到递归和输出流了,把这个练习放这里,以后多看看

 

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;

public class TestFile {

	public static void main(String[] args) {
		File file = new File("D:/");
		BufferedWriter writer = null;
		try {
			writer = new BufferedWriter(new FileWriter("D:/log.txt"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		getFiles(file, writer);

		try {
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	public static void getFiles(File file, BufferedWriter writer) {
		if (!file.exists())
			throw new RuntimeException("文件夹或者文件不存在"); // 判断下要去找东西的文件夹在不在
		if (file.isDirectory()) {
			File[] files = file.listFiles();

			if (files == null) // 如果目录中没有东西,就直接返回,在读到隐藏文件夹得时候也返回null
			{
				System.out.println(file.isHidden());
				return;
			}
			for (File f : files) {//遍历文件
				if (f.isDirectory())
					getFiles(f, writer);//如果是文件夹,继续调用此函数
				else if (f.isFile() && f.getName().endsWith(".java")) {//判断文件名,并将复核要求的写入log.txt
					try {
						writer.write(f.getAbsolutePath());
						writer.newLine();
						writer.flush();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		} else if (file.isFile() && file.getName().endsWith(".java")) {
			try {
				writer.write(file.getAbsolutePath());
				writer.newLine();
				writer.flush();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

1
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics