输入输出是指应用程序与外部设备交互操作,来满足存取数据的需求。
在Java中,文件和目录的管理是由java.io.File类来实现的。
1.File类不负责输入和输出,而是专门管理磁盘的文件和目录。
2.Flie对象代表一个磁盘上的文件或者目录,对象属性包含文件的相关信息(名称,长度,包含文件个数等),操作File对象即可对文件和目录管理(创建、删除、读取等)。
3.FileAPI文档说明:
public class File
extends Object
implements Serializable, Comparable<File>
<!-- Generated by javadoc (build 1.6.0-beta2) on Mon Mar 19 18:22:10 CST 2007 -->
<noscript></noscript>
文件和目录路径名的抽象表示形式。
用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:
"/"
表示 UNIX 中的根目录,"\\\\"
表示 Microsoft Windows UNC 路径名。 抽象路径名中的第一个名称是目录名,对于 Microsoft Windows UNC 路径名则是主机名。抽象路径名中第一个名称之后的每个名称表示一个目录;最后一个名称既可以表示目录,也可以表示文件。空 抽象路径名没有前缀和名称序列。
路径名字符串与抽象路径名之间的转换与系统有关。将抽象路径名转换为路径名字符串时,每个名称与下一个名称之间用一个默认分隔符 隔开。默认名称分隔符由系统属性 file.separator
定义,可通过此类的公共静态字段
和 separator
使其可用。将路径名字符串转换为抽象路径名时,可以使用默认名称分隔符或者底层系统支持的任何其他名称分隔符来分隔其中的名称。 separatorChar
无论是抽象路径名还是路径名字符串,都可以是绝对 路径名或相对 路径名。绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。相反,相对路径名必须使用取自其他路径名的信息进行解释。默认情况下,java.io
包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir
指定,通常是 Java 虚拟机的调用目录。
调用此类的 getParent()
方法可以获取抽象路径名的父 路径名,它由路径名前缀以及路径名名称序列中的每个名称(最后一个除外)组成。对于任何具有绝对抽象路径名的 File 对象,如果其绝对抽象路径名以某个目录的绝对路径名开头,那么该目录的绝对路径名是该 File 对象的祖先。例如,抽象路径名 "/usr" 表示的目录是路径名 "/usr/local/bin" 所表示目录的一个祖先。
在处理 UNIX 平台的根目录,以及 Microsoft Windows 平台的盘符、根目录和 UNC 路径名时,将用到前缀这一概念。如下所示:
"/"
。相对路径名没有前缀。表示根目录的绝对路径名的前缀为 "/"
且名称序列为空。 ":"
组成。如果路径名是绝对路径名,还可能后跟 "\\"
。UNC 路径名的前缀是 "\\\\"
;主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名没有前缀。 此类的实例可能表示(也可能不表示)实际文件系统对象,如文件或目录。如果它表示这种对象,那么该对象驻留在一个分区 中。分区是文件系统特定于操作系统的存储分区。一个存储设备(例如,物理磁盘驱动器、闪存、CD-ROM)可以包含多个分区。对象(如果有)将驻留在此路径名(绝对形式)某个祖先指定的分区上。
文件系统可以实现对实际文件系统对象上的某些操作(比如,读、写、执行)进行限制。这些限制统称为访问权限 。文件系统可以对一个对象设置多个访问权限。例如,一个设置可能适用于对象的所有者 ,另一个设置则可能适用于所有其他用户。对象上的访问权限可能导致此类的某些方法执行失败。
File
类的实例是不可变的;也就是说,一旦创建,File
对象表示的抽象路径名将永不改变。
4.构造方法:
构造方法摘要 File (File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 |
File (String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 |
File (String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 |
File (URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。 |
package com.test.file; import java.io.File; /** * File提供程序与外部设备目录和文件的管理(磁盘) * 可以获取目录和文件相关信息,也可以修改文件和目录的信息 * 提供判断、修改、创建文件或者目录的相关操作 * @author 守望幸福 * */ public class FileTest { private static void print(String str){ System.out.println(str); } public static void main(String[] args) { File f=new File("d:\\fileTest\\file.txt");//绝对路径创建File对象 print("是否可读:"+f.canRead()); print("是否可写:"+f.canWrite()); print("是否存在:"+f.exists()); print("绝对路径名:"+f.getAbsolutePath()); print("名称:"+f.getName()); print("父目录:"+f.getParent()); print("路径:"+f.getPath()); print("是否绝对路径:"+f.isAbsolute()); print("是否为目录:"+f.isDirectory()); print("是否为文件:"+f.isFile()); print("是否隐藏:"+f.isHidden()); print("长度:"+f.length()); print("最后修改时间:"+f.lastModified()); print("目录与文件名:"+f.list()); print("URI:"+f.toURI().toString()); } }