File类

来自CloudWiki
跳转至: 导航搜索

File类

绝对文件名和相对文件名

在文件系统中,每个文件都存放在一个目录下。绝对文件名是有文件名和它的完整路径以及驱动器字母组成。例如C:/book/Welcome.java。相对文件名是相对与当前工作目录的。对于相对文件而言,完整目录被忽略。例如welcome.java是相对文件名,如果当前目录是C:/book,绝对文件名将是C:/book。 在程序中,不要直接使用绝对文件名。如果使用了像C:/book/welcome.java之类的文件名,当程序和文件的位置变化了,相关的程序就不能运行了。

【注意】在windows中目录的分隔符是反斜杠(\),但是在java中反斜杠是一个特殊的字符,斜杠(/)是java中的目录分隔符。

构建File类实例

使用File类:

 import java.io.File;

File类提供了三个构造方法,创建实例化对象,具体如下:

  • new File(String pathname): 通过将给定路径来创建一个新File实例。例如:
File file = new File("cache/01_cache.txt");
  • new File(String parent, String child): 根据parent路径名字符串和child路径名创建一个新File实例。parent是指上级目录的路径,完整的路径为parent+child。例如:
File file = new File("cache","01_cache.txt");
  • new File(File parent, String child): 根据parent抽象路径名和child路径名创建一个新File实例。parent是指上级目录的路径,完整的路径为parent.getPath()+child。
File dir=new File("cache");//目录
File file = new File(dir,"01_cache.txt");

文件常用操作

File类包含了获得一个文件/目录的属性,以及对文件/目录进行改名和删除的方法。下面程序演示了File类常用的方法:

初始化文件实例

File file = new File("myfile.txt");

创建文件

   try{
	            
	            if(file.createNewFile())
	                System.out.println("文件创建成功!");
	            else
	                System.out.println("出错了,该文件已经存在。");
	        }
	        catch(IOException ioe) {
	            ioe.printStackTrace();
	        }

判断文件是否存在

System.out.println("判断文件是否存在" + file.exists());

读取文件路径

// 读取文件路径(相对路径)
		System.out.println("读取文件路径" + file.getPath());
		// 读取文件绝对路径
		System.out.println("读取文件绝对路径" + file.getAbsolutePath());
		// 读取文件的父级路径
		System.out.println("读取文件的父级路径" + new File(file.getAbsolutePath()).getParent());

判断文件属性

                // 读取文件的大小
		System.out.println("读取文件的大小" + file.length() + "byte");// 字节
		// 判断文件是否被隐藏
		System.out.println("判断文件是否被隐藏" + file.isHidden());
		// 判断文件是否可读
		System.out.println("判断文件是否可读" + file.canRead());
		// 判断文件是否可写
		System.out.println("判断文件是否可写" + file.canWrite());
		// 判断文件是否为文件夹
		System.out.println("判断文件是否为文件夹" + file.isDirectory());

完整代码

package task8;

import java.io.File;
import java.io.IOException;

public class FileTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		File file = new File("myfile.txt");
		 try{
	            
	            if(file.createNewFile())
	                System.out.println("文件创建成功!");
	            else
	                System.out.println("出错了,该文件已经存在。");
	        }
	        catch(IOException ioe) {
	            ioe.printStackTrace();
	        }
		 
		System.out.println("判断文件是否存在" + file.exists());
		// 读取文件名称
		System.out.println("读取文件名称" + file.getName());
		// 读取文件路径(相对路径)
		System.out.println("读取文件路径" + file.getPath());
		// 读取文件绝对路径
		System.out.println("读取文件绝对路径" + file.getAbsolutePath());
		// 读取文件的父级路径
		System.out.println("读取文件的父级路径" + new File(file.getAbsolutePath()).getParent());
		// 读取文件的大小
		System.out.println("读取文件的大小" + file.length() + "byte");// 字节
		// 判断文件是否被隐藏
		System.out.println("判断文件是否被隐藏" + file.isHidden());
		// 判断文件是否可读
		System.out.println("判断文件是否可读" + file.canRead());
		// 判断文件是否可写
		System.out.println("判断文件是否可写" + file.canWrite());
		// 判断文件是否为文件夹
		System.out.println("判断文件是否为文件夹" + file.isDirectory());
	}

}


程序运行结果,如图6-7所示。

Java6-6.png

图6-7 File类示例运行结果

返回 Java程序设计