简介

File类的实例代表了一个文件或者一个目录,通过API可以获取这个对象的相关信息。

File类代表的文件或者目录可以真实存在,也可以是不存在的,可以使用File.exists()来判断。

在Windows系统中,绝对路径是以盘符开头的,例如 "E:\\java\Hello.java"

而在类Unix系统中,绝对路径以"/"开头,例如 "/home/bob/java/Hello.java"

相对路径以某个目录或者文件名开头 ,例如  "images\a.jpg",但是相对路径单独存在是没有意义的,还需要指定他的父目录。

例如 "E:\java\images\a.jpg"  和  "E:\C++\images\a.jpg" 是2个不同的文件。

构造函数

File(String pathname)
通过将给定路径名字符串来创建一个新 File 实例。

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

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

File(URI uri)
通过将给定的 file: URI 来创建一个新的 File 实例。

//"E\Java\book\servlets_tutorial.pdf"
File f = new File("E:"+File.separator
+"Java"+File.separator
+"book","servlets_tutorial.pdf"); File f1 = new File("E:"+File.separator
+"Java"+File.separator
+"book"+File.separator
+"servlets_tutorial.pdf"); File dir = new File("E:"+File.separator
+"Java"+File.separator
+"book");
File f2 = new File(dir, "servlets_tutorial.pdf");

静态字段

public static String seperator      系统文件路径分隔符      window下是"\"     linux 是 "/"
public static char seperatorChar 字符类型,同上。 public static String pathSeperator 系统环境变量中的分隔符。 widows下是 ";" linux下是 ":"
public static char pathSeperator 字符类型,同上。

实例方法

下面是比较常用的API,更多的参看JDK文档。注意:有些API是只针对目录,而有些只针对文件才有意义。


boolean exists()        

这个文件或者目录在机器上是否真实存在。

boolean canExecute()

是否可被程序执行。

boolean canRead()

是否可以被程序读取文件中的数据。

boolean canWrite()

是否可以被程序写入数据到文件。

boolean isFile()

是一个文件吗?

boolean isDirectory()

是一个目录吗?

boolean isAbsolute()

这个目录或者文件是以绝对路径表示的吗?

long length()

返回文件的大小,即字节数。

long lastModified() 

返回文件最近一次被修改的时间的long类型时间表示。可以通过 Date类构造转换为年月日格式的时间。通过这个参数用来比较,来确认文件是否被修改过。

String getName()

返回这个文件或者目录的名称。

String getParent()

返回父目录

String[] list()

如果File对象代表的是目录,则返回这个目录下所有内容(文件是文件名,目录是目录名)的String表示的数组。

代码演示

import java.io.File;
import java.util.Date; public class AllDemo
{ public static void main(String[] args)
{ analyseFile("E:\\a.txt");
System.out.println("--------------------");
analyseFile("E:\\Java"); } public static void analyseFile(String path)
{ File file = new File(path); if (file.exists())
{
if(file.isFile())
{
System.out.println("name:"+file.getName());
System.out.println("isFile?:"+file.isFile());
System.out.println("length:"+file.length());
System.out.println("canRead?:"+file.canRead()); System.out.println("lastModified:"+new Date(file.lastModified()).toLocaleString());
System.out.println("absolute path:"+file.getAbsolutePath()); }
else if(file.isDirectory())
{
System.out.println("name:"+file.getName());
System.out.println("isDrictory?:"+file.isDirectory());
System.out.println("length:"+file.length());
System.out.println("canRead?:"+file.canRead()); System.out.println("lastModified:"+new Date(file.lastModified()).toLocaleString());
System.out.println("absolute path:"+file.getAbsolutePath()); } } } }

输出:

name:a.txt
isFile?:true
length:10
canRead?:true
lastModified:2017-9-10 23:24:25
absolute path:E:\a.txt
--------------------
name:Java
isDrictory?:true
length:4096
canRead?:true
lastModified:2017-9-7 21:19:03
absolute path:E:\Java

File类使用的更多相关文章

  1. java中File类的使用

    public class FileLei {    public static void main(String[] args) throws IOException {        //..表示上 ...

  2. File 类

    File 类:文件和目录(文件夹)路径名的抽象表现形式. 方法 1.创建功能 public boolean createNewFile():创建文件 public boolean mkdir():创建 ...

  3. C#File类常用的文件操作方法(创建、移动、删除、复制等)

    File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path ...

  4. File类基础

    File类的作用: Java的io包中定义了File类,用于对文件或文件夹的管理操作. File类只能够用于表示文件或文件夹的信息(属性)和对该文件或文件夹的删除创建操作 (不能对内容进行访问) 通过 ...

  5. 【转】File类应用 - FilenameFilter 和 FileFilter

    FilenameFilter & FileFilter FilenameFilter 和 FileFilter 都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码 ...

  6. Java篇-File类之创建删除

    /** * */ package com.io.file; import java.io.File; import java.io.IOException; import org.junit.Test ...

  7. JavaIO之File类

    Java-IO之File类 Java-IO之File类 1. File类 1.1. File类说明 1.2. 体验 File 类 1.3. 构造一个 File 类实例: 1.4. 路径: 1.4.1. ...

  8. I/O流——File类及使用

    I/O框架介绍 I/O是计算机输入/输出的接口.Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等. File类及使用 ①   一个File类的对 ...

  9. 初学File类

    对File类的基本方法的理解 今天刚开始学了File类 一开始看思想编程看得迷迷糊糊的,之后受不了了,直接去看API文档 归纳: File->java.util File类的主要方法: 构造方法 ...

  10. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

随机推荐

  1. 【转帖】如何在redhat单机服务器上运行postgresql的多个实例(howto run multiple postgresql instance on one redhat server)

    Running multiple PostgreSQL 9.2 Instances on one server in CentOS 6/RHEL 6/Fedora 原帖网站速度很慢,故转帖在此 Thi ...

  2. js数组push方法使用注意

    js 数组的push方法,想必大家都知道是向数组末尾添加元素,但是有一个很关键的点需注意: 引自MDN 返回值 当调用该方法时,新的 length 属性值将被返回. var sports = [&qu ...

  3. nvm安装node和npm,个人踩坑记录

    我采用nvm-setup安装windows版本的nvm nvm安装node出现的问题: 1.node成功了,npm没成功 解决:在nvm 安装了node之后,输入npm找不到该命令,当时安装报错如下: ...

  4. VCard介绍

    91助手和豌豆荚用VCard来存储通讯录,今天调查了一下. 1. 方案 使用VCard存储通讯录,文件扩展名为 vcf,  数据文件可以直接导入IPhone/Windows Phone/android ...

  5. BarTender怎么打印公式化的三列标签

    有小伙伴在业务上有这样的需求:使用BarTender打印一行三列的标签,如下A,B,C三个并排.第一行 A1=a B1=a*2-1 C1=a*2:第二行 A2=a+1 B2=(a+1)*2-1 C2= ...

  6. Linux下的ssh远程访问

    准备工作:首先需要在windows系统中安装虚拟机,并在虚拟机中安装好linux操作系统,这里安装的是vmware player虚拟机和ubuntu版本的操作系统.关于该部分的安装在作者的其他经验中有 ...

  7. [Module] 08 - MVP by Mosby

    From: Mosby MVP使用教程[作者用心] View是消极视图(Passive View), 它尽量不去主动做事, 让Presenter通过抽象方式控制View 例子: 例如Presenter ...

  8. C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别

    // 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...

  9. AcceptEx 以及 获取远程IP与port

    // 獲取本地以及遠程的IP和port setsockopt(clientfd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char *)&listenfd ...

  10. [Command] sync - 同步内存与硬盘数据

    sync - 同步内存与硬盘之间的数据. sync [--help] [--version] sync 命令将内存中缓存的数据写入磁盘.这包括但不限于修改过的 superblock, inode 和延 ...