java.io.File

File类简介

        public class File extends Object implements Serializable, Comparable<File>

        文件和目录路径名的抽象表示形式。

        用户界面和操作系统使用与系统相关的路径名字符串来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名有两个组件:

        1、一个可选的与系统有关的前缀字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\"表示 MicrosoftWindows UNC 路径名。

        2、零个或更多字符串名称的序列。

        抽象路径名中的第一个名称是目录名,对于 Microsoft WindowsUNC 路径名则是主机名。抽象路径名中第一个名称之后的每个名称表示一个目录;最后一个名称既可以表示目录,也可以表示文件。空抽象路径名没有前缀和名称序列。

        路径名字符串与抽象路径名之间的转换与系统有关。将抽象路径名转换为路径名字符串时,每个名称与下一个名称之间用一个默认分隔符隔开。默认名称分隔符由系统属性file.separator 定义,可通过此类的公共静态字段 separator和 separatorChar使其可用。将路径名字符串转换为抽象路径名时,可以使用默认名称分隔符或者底层系统支持的任何其他名称分隔符来分隔其中的名称。

        无论是抽象路径名还是路径名字符串,都可以是绝对路径名或相对路径名。绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。相反,相对路径名必须使用取自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

        调用此类的 getParent()方法可以获取抽象路径名的父路径名,它由路径名前缀以及路径名名称序列中的每个名称(最后一个除外)组成。对于任何具有绝对抽象路径名的 File 对象,如果其绝对抽象路径名以某个目录的绝对路径名开头,那么该目录的绝对路径名是该 File 对象的祖先。例如,抽象路径名 "/usr" 表示的目录是路径名"/usr/local/bin" 所表示目录的一个祖先。

        在处理 UNIX 平台的根目录,以及 MicrosoftWindows 平台的盘符、根目录和 UNC 路径名时,将用到前缀这一概念。如下所示:

  • 对于 UNIX 平台,绝对路径名的前缀始终是 "/"。相对路径名没有前缀。表示根目录的绝对路径名的前缀为"/" 且名称序列为空。
  • 对于Microsoft Windows平台,包含盘符的路径名前缀由驱动器号和一个":"组成。如果路径名是绝对路径名,还可能后跟"\\"。UNC路径名的前缀是"\\\\";主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名没有前缀。

        此类的实例可能表示(也可能不表示)实际文件系统对象,如文件或目录。如果它表示这种对象,那么该对象驻留在一个分区中。分区是文件系统特定于操作系统的存储分区。一个存储设备(例如,物理磁盘驱动器、闪存、CD-ROM)可以包含多个分区。对象(如果有)将驻留在此路径名(绝对形式)某个祖先指定的分区上。

        文件系统可以实现对实际文件系统对象上的某些操作(比如,读、写、执行)进行限制。这些限制统称为访问权限。文件系统可以对一个对象设置多个访问权限。例如,一个设置可能适用于对象的所有者,另一个设置则可能适用于所有其他用户。对象上的访问权限可能导致此类的某些方法执行失败。

        File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。

 

File类字段摘要

        1、staticString pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。

        2、staticchar pathSeparatorChar 与系统有关的路径分隔符。

        3、staticString separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

        4、staticchar separatorChar 与系统有关的默认名称分隔符。


File类构造方法摘要

        1、File(Fileparent, String child) 根据 parent 抽象路径名和child 路径名字符串创建一个新 File 实例。

        2、File(Stringpathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。

        3、File(Stringparent, String child) 根据 parent 路径名字符串和child 路径名字符串创建一个新 File 实例。

        4、File(URIuri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的File 实例。

 

File类方法摘要

        1、booleancanExecute() 测试应用程序是否可以执行此抽象路径名表示的文件。

        2、booleancanRead() 测试应用程序是否可以读取此抽象路径名表示的文件。

        3、booleancanWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。

        4、intcompareTo(File pathname) 按字母顺序比较两个抽象路径名。

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

        6、staticFile createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。

        7、staticFile createTempFile(String prefix, String suffix, File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

        8boolean delete() 删除此抽象路径名表示的文件或目录。

        9、voiddeleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

        10、booleanequals(Object obj) 测试此抽象路径名与给定对象是否相等。

        11boolean exists() 测试此抽象路径名表示的文件或目录是否存在。

        12File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。

        13StringgetAbsolutePath() 返回此抽象路径名的绝对路径名字符串。

        14、FilegetCanonicalFile() 返回此抽象路径名的规范形式。

        15、StringgetCanonicalPath() 返回此抽象路径名的规范路径名字符串。

        16、longgetFreeSpace() 返回此抽象路径名指定的分区中未分配的字节数。

        17String getName() 返回由此抽象路径名表示的文件或目录的名称。

        18、StringgetParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。

        19、FilegetParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回null。

        20String getPath() 将此抽象路径名转换为一个路径名字符串。

        21、longgetTotalSpace() 返回此抽象路径名指定的分区大小。

        22、longgetUsableSpace() 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。

        23、inthashCode() 计算此抽象路径名的哈希码。

        24、booleanisAbsolute() 测试此抽象路径名是否为绝对路径名。

        25boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。

        26、booleanisFile() 测试此抽象路径名表示的文件是否是一个标准文件。

        27、booleanisHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件。

        28、longlastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。

        29、longlength() 返回由此抽象路径名表示的文件的长度。

        30String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

        31、String[]list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

        32File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

        33、File[]listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

        34、File[]listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

        35、staticFile[] listRoots() 列出可用的文件系统根。

        36boolean mkdir() 创建此抽象路径名指定的目录。

        37、booleanmkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

        38boolean renameTo(Filedest) 重新命名此抽象路径名表示的文件。

        39、booleansetExecutable(boolean executable) 设置此抽象路径名所有者执行权限的一个便捷方法。

        40、booleansetExecutable(boolean executable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的执行权限。

        41、booleansetLastModified(long time) 设置此抽象路径名指定的文件或目录的最后一次修改时间。

        42、booleansetReadable(boolean readable) 设置此抽象路径名所有者读权限的一个便捷方法。

        43、booleansetReadable(boolean readable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的读权限。

        44、booleansetReadOnly() 标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。

        45、booleansetWritable(boolean writable) 设置此抽象路径名所有者写权限的一个便捷方法。

        46、booleansetWritable(boolean writable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的写权限。

        47、StringtoString() 返回此抽象路径名的路径名字符串。

        48、URItoURI() 构造一个表示此抽象路径名的 file:URI。

 

程序实例

package com.zxt.iooperation;

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

/*
 * 功能:file类的基本用法
 */

public class FileOperation {

	public static void main(String[] args) {
		// File类的字段
		// 与系统有关的路径分隔符
		System.out.println(File.pathSeparator);
		// 与系统有关的默认名称分隔符 (为了程序的可移植性,程序中的文件名称分隔符都应该使用separator)
		System.out.println(File.separator);
		
		
		// 创建一个文件对象
		File f = new File("E:\\123.txt");

		// 得到文件的路径
		System.out.println("文件路径:" + f.getAbsolutePath());
		// 得到文件的大小,字节数
		System.out.println("文件大小:" + f.length());

		// 创建文件和创建文件夹
		File f1 = new File("E:\\zxt.txt");
		// 文件不存在
		if (!f1.exists()) {
			// 创建
			try {
				f1.createNewFile();
			} catch (IOException ex) {
				ex.printStackTrace();
			}

		} else {
			// 有该文件 不创建
			System.out.println("文件已经存在,不用创建");
		}

		// 创建文件夹
		File f3 = new File("E:\\zxt");

		if (f3.isDirectory()) {
			System.out.println("文件夹存在");
		} else {
			// 创建
			f3.mkdir();
		}

		// 列出文件夹下的所有文件
		File f4 = new File("./");
		if (f4.isDirectory()) {
			File lists[] = f4.listFiles();
			for (int i = 0; i < lists.length; i++) {
				System.out.println("文件名:" + lists[i].getName());
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值