Java IO: File

原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

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

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

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

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

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

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

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

检测文件是否存在

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

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

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

boolean fileExists = file.exists();

文件长度

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

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

long length = file.length();

重命名或移动文件

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

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

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

删除文件

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

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

boolean success = file.delete();

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

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

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

File file = new File("c:\\data");

boolean isDirectory = file.isDirectory();

读取目录中的文件列表

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

File file = new File("c:\\data");

String[] fileNames = file.list();

File[] files = file.listFiles();
时间: 2024-11-01 23:36:00

Java IO: File的相关文章

java io File not found 找不到系统指定的文件,工程目录下有此文件源码如下

问题描述 java io File not found 找不到系统指定的文件,工程目录下有此文件源码如下 PrintWriter out = response.getWriter(); response.setContentType("text/html"); // 图片上传路径 String uploadPath = request.getSession().getServletContext().getRealPath("/") + "upload/i

【java IO File】统计项目代码总共多少行

统计项目代码总共有多少行 思想: 1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹 2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件 3.迭代方法:是文件夹,则进入文件夹子层,将满足条件的文件与文件夹保存在数组中 是文件,则计算+=行数   代码如下: 1 package com.sxd.test.util; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 import

java.io.File中的绝对路径和相对路径.

按照jdk Doc上的说法"绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件.相反,相对路径名必须使用来自其他路径名的信息进行解释.默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名.此目录由系统属性 "user.dir" 指定,通常是 Java 虚拟机的调用目录." 相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是"当前用户目录"也就是"

图解 Java IO : 一、File源码

Writer      :李强强 记得Java源码是从集合类开始看的,写了一系列集合相关的文章,受到不错的评价.感谢各位读者.我依旧会读到老写到老,并生动形象的写出来心得体会.这次依旧是图解Java IO. Java IO – File的要点,应该是 1.跨平台问题的解决 2.文件的安全 3.文件的检索方法 一.代码小引入 代请看一个简单的小demo:(ps:开源项目java-core-learning地址:https://github.com/JeffLi1993) import java.i

Java IO流学习总结二:File

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54581478 本文出自[赵彦军的博客] Java File类的功能非常强大,利用java基本上可以对文件进行所有操作. 首先来看File类的构造函数的源码 /** * Internal constructor for already-normalized pathname strings. */ private File(String pathname, int prefixLe

java io系列08之 File总结

本文对File的API和常用方法进行介绍. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_08.html File 介绍 File 是"文件"和"目录路径名"的抽象表示形式.File 直接继承于Object,实现了Serializable接口和Comparable接口.实现Serializable接口,意味着File对象支持序 列化操作.而实现Comparable接口,意味着File对象之间可以比较大小:File能

java io学习(二十一) FileReader和FileWriter

FileReader和FileWriter源码分析 1. FileReader 源码(基于jdk1.7.40) package java.io; public class FileReader extends InputStreamReader { public FileReader(String fileName) throws FileNotFoundException { super(new FileInputStream(fil java io系列21之 InputStreamReade

java io学习(六) FileInputStream和FileOutputStream

本章介绍FileInputStream 和 FileOutputStream FileInputStream 和 FileOutputStream 介绍 FileInputStream 是文件输入流,它继承于InputStream. 通常,我们使用FileInputStream从某个文件中获得输入字节. FileOutputStream 是文件输出流,它继承于OutputStream. 通常,我们使用FileOutputStream 将数据写入 File 或 FileDescriptor 的输出

Java:IO操作工具类

[1] String fileReaderStringHandle(String fileName) 将文件(由fileName指定)读入到一个字符串: [2] byte[] fileReaderByteHandle(String fileName) 将文件(由fileName指定)读入到一个字节数组: [3] void fileWriterHandle(String fileName, String text) 将字符串(由text指定)写出到一个文件(由fileName指定). IOUtil