Java IO: File

原文链接 作者: Jakob Jenkov 译者: 李璟([email protected])

Java IO API中的FIle类可以让你访问底层文件系统,通过File类,你可以做到以下几点:

  • 检测文件是否存在
  • 读取文件长度
  • 重命名或移动文件
  • 删除文件
  • 检测某个路径是文件还是目录
  • 读取目录中的文件列表

请注意:File只能访问文件以及文件系统的元数据。如果你想读写文件内容,需要使用FileInputStream、FileOutputStream或者RandomAccessFile。如果你正在使用Java NIO,并且想使用完整的NIO解决方案,你会使用到java.nio.FileChannel(否则你也可以使用File)。

实例化一个java.io.File对象

在使用File之前,必须拥有一个File对象,这是实例化的代码例子:

1 File file = new File("c:\\data\\input-file.txt");

很简单,对吗?File类同样拥有多种不同实例化方式的构造函数。

检测文件是否存在

当你获得一个File对象之后,可以检测相应的文件是否存在。当文件不存在的时候,构造函数并不会执行失败。你已经准备好创建一个File了,对吧?

通过调用exists()方法,可以检测文件是否存在,代码如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 boolean fileExists = file.exists();

文件长度

通过调用length()可以获得文件的字节长度,代码如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 long length = file.length();

重命名或移动文件

通过调用File类中的renameTo()方法可以重命名(或者移动)文件,代码如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 boolean success = file.renameTo(new File("c:\\data\\new-file.txt"));

删除文件

通过调用delete()方法可以删除文件,代码如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 boolean success = file.delete();

delete()方法与rename()方法一样,返回布尔值表明是否成功删除文件,同样也会有相同的操作失败原因。

检测某个路径是文件还是目录

File对象既可以指向一个文件,也可以指向一个目录。可以通过调用isDirectory()方法,可以判断当前File对象指向的是文件还是目录。当方法返回值是true时,File指向的是目录,否则指向的是文件,代码如下:

1 File file = new File("c:\\data");
2  
3 boolean isDirectory = file.isDirectory();

读取目录中的文件列表

你可以通过调用list()或者listFiles()方法获取一个目录中的所有文件列表。list()方法返回当前File对象指向的目录中所有文件与子目录的字符串名称(译者注:不会返回子目录下的文件及其子目录名称)。listFiles()方法返回当前File对象指向的目录中所有文件与子目录相关联的File对象(译者注:与list()方法类似,不会返回子目录下的文件及其子目录)。代码如下:

1 File file = new File("c:\\data");
2  
3 String[] fileNames = file.list();
4  
5 File[] files = file.listFiles();

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: File

时间: 2024-12-17 10:53:42

Java IO: File的相关文章

java.io.File的基本使用以及关于Windows中大小写问题

package fengke.filedemo; import java.io.File;import java.io.IOException;/** * java.io.File的基本使用以及关于Windows中大小写问题 * @author 锋客 *   注意:文件创建的异常:默认路径与绝对路径的问题:多级目录的创建 *       掌握三种构造方法:不能用于文件内容的访问. * */ public class FileDemo {    /* File类只用于表示文件(目录)的信息(名称.

利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件

2016-11-18 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上.利用java.io.File类指定本地的文件夹进行遍历所有的文件. package org.lxm.filedemo; import java.io.File; import java.util.Scanner; /* * 本程序是将某个盘的所有文件夹及其文件全部调出来的操作 */ public class FileAllDemo { public static void main(String

IO:File类(java.io.File)

public class File extends Object implements Serializable, Comparable<File> 构造方法: public File(String pathname) 按照完整路径实例化 public File(File parent, String child) 按照父路径和文件名实例化 成员: public static final String separator 目录分隔符 ('\'.'/'等) public static final

如何判断java.io.File所读取的文件编码

如何判断java.io.File所读取的文件编码 问题 java中涉及到文件读取,就经常要考虑文件编码问题.虽然程序中一般都指定UTF-8编码,但是用户总可能提交各种编码的文件(特别是windows下用户),如果对这些文件不做判断就直接按照UTF-8的方式读取的话,是肯定会乱码的. 解决方案 java原生并不支持文件编码的判断,一般都是read文件的前几个字节来判断,需要自己编写工具类,判断的编码类型也比较少.最近找到了个开源的项目juniversalchardet,能比较优雅的完成这个任务.

Gradle构建Android Project出现java.io.File找不到的问题

出现此问题,一般是提示在  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 这行出错. 此问题是proguard-android.txt这个文件找不到,这个文件在 ${sdk.dir}\tools\proguard\proguard-android.txt:proguard-project.txt 所以,要让gadle要能找到这个文件,需要在系统变量中添加ANDROID_HOME

File类(java.io.File)

File类(java.io.File) public class File extends Object implements Serializable, Comparable<File> 构造方法: public File(String pathname) 按照完整路径实例化 public File(File parent, String child) 按照父路径和文件名实例化 成员: public static final String separator 目录分隔符 ('\'.'/'等)

Java 基础【12】java.io.file 文件(文件夹) 创建和删除

使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识. JDK API 中描述: 来段代码会看的更清楚: File file1 = new File("F:/AAA/BBB/CCC"); if (file1.mkdirs()) { System.out.println("多级层文件夹创建成功!创建后的文件目录为:" + file1.getPath() + ",上级文件为:" + file1.getParent());

java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)

java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io.File.listFiles(FilenameFilter filter)方法的声明: public File[] listFiles(FilenameFilter filter) 参数 filter - 文件名过滤器 返回值 该方法返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的

java io File删除带内容的目录

 /** * 删除带内容的目录 * windows删除原理:必须从最里面往外删除 * 需要深度遍历 */ package cn.test.filedemo; import java.io.File; public class DeleteFileDemo { public static void main(String[] args) { File dir = new File("d:\\java"); //删除不了有内容的文件目录 //dir.delete(); removeDi