Java手册

java.io
类 File

java.lang.Object
  

java.io.File
所有已实现的接口:
Serializable, Comparable<File>

public class Fileextends Objectimplements Serializable, Comparable<File>

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

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

  1. 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名。
  2. 零个或更多字符串名称 的序列。

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

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

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

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

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

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

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

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

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

从以下版本开始:
JDK1.0
另请参见:
序列化表格

字段摘要
static String pathSeparator
          与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar

与系统有关的路径分隔符。

static String separator

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

static char separatorChar

与系统有关的默认名称分隔符。

构造方法摘要
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 实例。

方法摘要
 boolean canExecute()

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

 boolean canRead()

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

 boolean canWrite()

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

 int compareTo(File pathname)

按字母顺序比较两个抽象路径名。

 boolean createNewFile()

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

static File createTempFile(String prefix,
String suffix)

在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。

static File createTempFile(String prefix,
String suffix,
File directory)

在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

 boolean delete()

删除此抽象路径名表示的文件或目录。

 void deleteOnExit()

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

 boolean equals(Object obj)

测试此抽象路径名与给定对象是否相等。

 boolean exists()

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

 File getAbsoluteFile()

返回此抽象路径名的绝对路径名形式。

 String getAbsolutePath()

返回此抽象路径名的绝对路径名字符串。

 File getCanonicalFile()

返回此抽象路径名的规范形式。

 String getCanonicalPath()

返回此抽象路径名的规范路径名字符串。

 long getFreeSpace()

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

 String getName()

返回由此抽象路径名表示的文件或目录的名称。

 String getParent()

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

 File getParentFile()

返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null

 String getPath()

将此抽象路径名转换为一个路径名字符串。

 long getTotalSpace()

返回此抽象路径名指定的分区大小。

 long getUsableSpace()

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

 int hashCode()

计算此抽象路径名的哈希码。

 boolean isAbsolute()

测试此抽象路径名是否为绝对路径名。

 boolean isDirectory()

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

 boolean isFile()

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

 boolean isHidden()

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

 long lastModified()

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

 long length()

返回由此抽象路径名表示的文件的长度。

 String[] list()

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

 String[] list(FilenameFilter filter)

返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

 File[] listFiles()

返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

 File[] listFiles(FileFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

 File[] listFiles(FilenameFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

static File[] listRoots()

列出可用的文件系统根。

 boolean mkdir()

创建此抽象路径名指定的目录。

 boolean mkdirs()

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

 boolean renameTo(File dest)

重新命名此抽象路径名表示的文件。

 boolean setExecutable(boolean executable)

设置此抽象路径名所有者执行权限的一个便捷方法。

 boolean setExecutable(boolean executable,
boolean ownerOnly)

设置此抽象路径名的所有者或所有用户的执行权限。

 boolean setLastModified(long time)

设置此抽象路径名指定的文件或目录的最后一次修改时间。

 boolean setReadable(boolean readable)

设置此抽象路径名所有者读权限的一个便捷方法。

 boolean setReadable(boolean readable,
boolean ownerOnly)

设置此抽象路径名的所有者或所有用户的读权限。

 boolean setReadOnly()

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

 boolean setWritable(boolean writable)

设置此抽象路径名所有者写权限的一个便捷方法。

 boolean setWritable(boolean writable,
boolean ownerOnly)

设置此抽象路径名的所有者或所有用户的写权限。

 String toString()

返回此抽象路径名的路径名字符串。

 URI toURI()

构造一个表示此抽象路径名的 file: URI。

 URL toURL()

已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过 toURI 方法将其转换为 URI,然后通过 URI.toURL 方法将 URI 装换为 URL。

从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

实际应用

创建一个文件

import java.io.File;
import java.io.IOException; public class FileDemo2 {
public static void main(String[] args) throws IOException{ //将传入的路径标记为了一个file对象
File file = new File("E:\\test"); //创建file对象指定的文件
boolean b2 = file.createNewFile();
System.out.println(b2); }
}

运行结果:

true

E 盘里面出现了新的文件夹

注意:

1、创建文件的时候需要调用方法:createNewFile()

2、File file = new File("E:\\test");

  先把路径传给 file 对象,然后createNewFile()这个方法开始根据传过来的路径检测是否在此路径下有对应的文件,

  如果有,则创建失败,返回flase,如果没有,则创建指定的文件,并返回true。

3、只能创建文件不能创建目录

删除一个文件

import java.io.File;
import java.io.IOException; public class FileDemo2 {
public static void main(String[] args) throws IOException{ //将传入的路径标记为了一个file对象
File file = new File("E:\\test"); //删除文件file对象对应的文件
boolean b1 = file.delete();
System.out.println(b1);
}
}

运行结果:

true

此时,file 对象指向的文件被删除。

注意:

1、删除文件或者目录的过程是不可逆的

2、删除目录时,要求目录必须是空目录

创建一层目录

import java.io.File;
import java.io.IOException; public class FileDemo2 {
public static void main(String[] args) throws IOException{ //将传入的路径标记为了一个file对象
File file = new File("E:\\test"); //创建一层目录
boolean b = file.mkdir();
System.out.println(b);
}
}

运行结果:

注意:

1、当且仅当这个目录不存在的时候才会创建
2、只能创建一层目录

创建多层目录

import java.io.File;
import java.io.IOException; public class FileDemo2 {
public static void main(String[] args) throws IOException{ //将传入的路径标记为了一个file对象
File file = new File("E:\\test\\cjj\\lnn"); //创建多层目录
boolean b = file.mkdirs();
System.out.println(b);
}
}

运行结果:

Java File文件操作 创建文件\目录,删除文件\目录的更多相关文章

  1. Python文件操作大全,随机删除文件夹内的任意文件

     在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法: os.path.abspath(path) #返回绝对路径os.path.basename(path ...

  2. C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...

  3. Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作

    Windows phone7中文件的存储模式是独立的,即独立存储空间(IsolatedStorage).对文件夹与文件操作,需要借助IsolatedStorageFile类. IsolatedStor ...

  4. C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

  5. 电脑提示‘您需要来自Administration的权限才能对此文件夹进行更改’怎么删除文件

    电脑提示'您需要来自Administration的权限才能对此文件夹进行更改'怎么删除文件 应该怎么做 win7系统需要定期删除一些无用的文件,扩大内存空间,但是在删除文件的时候弹出提示"您 ...

  6. Nodejs下如何判断文件夹的存在以及删除文件夹下所有的文件

    代码如下: var folder_exists = fs.existsSync('./cache'); if(folder_exists == true) { var dirList = fs.rea ...

  7. Linux_文件及文件夹[创建][复制][移动][删除][重命名]

    一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语   法: touch [-acfm][-d <日期时间>][-r <参考文件或目 录&g ...

  8. java 通过sftp服务器上传下载删除文件

    最近做了一个sftp服务器文件下载的功能,mark一下: 首先是一个SftpClientUtil 类,封装了对sftp服务器文件上传.下载.删除的方法 import java.io.File; imp ...

  9. [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

随机推荐

  1. CentOS日常维护及常用脚本

    [root@-.x.x xiewenming]# curl myip.ipip.net 当前 IP:42.62.x.x 来自于:中国 北京 北京 联通/电信 www.17ce.com  cdn解析网站 ...

  2. python 矩阵转置

    arrA=[[,,,],[,,,],[,,,],[,,,]] N= #声明4x4数组arr arrB=[[None] * N for row in range(N)] print('[原设置的矩阵内容 ...

  3. angular 之路由

    1.用angular-cli建一个工程自带路由怎么做? 命令:ng new  项目名 --routing 2.怎么使用路由器和路由器的一些基本使用. //html页面 <a routerLink ...

  4. bzoj1044: [HAOI2008]木棍分割 二分+dp

    有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少 ...

  5. vue 报错 Cannot read property '__ob__' of undefined的解决方法

    记不清第n次遇到这个错误了,但是脑子就是不好用,记不住解决办法啊,每次都要找好久才能找到错误,网上还一篇篇的全是错误答案......所以写篇随笔,记录下,方便大家也方便我自己. 网上有人说是组件循环了 ...

  6. Bitwise Equations

    Problem Description You are given two positive integers X and K. Return the K-th smallest positive i ...

  7. 在页面和请求中分别使用XML Publisher生成PDF报表且自动上传至附件服务器

    两个技术要点: 1.使用TemplateHelper.processTemplate方法生成目标PDF的InputStream流,再使用ftp中上传流的方法将其上传至附件服务器. 2.在请求中调用AM ...

  8. iOS UI-静态单元格与动态单元格

  9. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 04

    作业要求与 [https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 相同 版本控制:https://git.coding.net/li ...

  10. DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)

    春节了,趁着假期的空闲时间,抽空捣鼓了下tiny6410开发板,发现这个东东尘封许久,很长时间没用过了.貌似最近物联网大热,谷歌收购Nest,其设计的恒温器能够智能调节和远程控制房间的温度,UI和设计 ...