File 类:文件和目录路径名的抽象表示。

注意:File 类只能操作文件的属性,文件的内容是不能操作的。

1、File 类的字段

  我们知道,各个平台之间的路径分隔符是不一样的。

  ①、对于UNIX平台,绝对路径名的前缀始终为"/" 。 相对路径名没有前缀。 表示根目录的抽象路径名具有前缀"/"和空名称序列。

  ②、对于Microsoft Windows平台,包含驱动器说明符的路径名的前缀由后面跟着":"的驱动器号组成,如果路径名是绝对的,则可能后跟"\\" 。 UNC路径名的前缀为"\\\\" ; 主机名和共享名称是名称序列中的前两个名称              没有有指定驱动器的相对路径名没有前缀。

  那么为了屏蔽各个平台之间的分隔符差异,我们在构造 File 类的时候(如何构造,请看下面第二点),就可以使用上述 Java 为我们提供的字段。

System.out.println(File.separator);//输出 \
System.out.println(File.pathSeparator);//输出 ;

  那么我们可以看出:

    File.pathSeparator指的是分隔连续多个路径字符串的分隔符

    File.separator是用来分隔同一个路径字符串中的目录的

2、File 类的构造方法

如何使用上述构造方法,请看如下例子:

//不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效
File f1 = new File("D:\\IO\\a.txt");
//使用 Java 提供的分隔符
File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
System.out.println(f1);//输出 D:\IO\a.txt
System.out.println(f2);//输出 D:\IO\a.txt //File(File parent, String child)
//从父抽象路径名和子路径名字符串创建新的 File实例。
File f3 = new File("D:");
File f4 = new File(f3,"IO");
System.out.println(f4); //D:\IO //File(String pathname)
//通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File f5 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
System.out.println(f5); //D:\IO\a.txt //File(String parent, String child)
//从父路径名字符串和子路径名字符串创建新的 File实例。
File f6 = new File("D:","IO\\a.txt");
System.out.println(f6); //D:\IO\a.txt

  

3、File 类的常用方法

  ①、创建方法

    1.boolean createNewFile() 不存在返回true 存在返回false
    2.boolean mkdir() 创建目录,如果上一级目录不存在,则会创建失败
    3.boolean mkdirs() 创建多级目录,如果上一级目录不存在也会自动创建

  ②、删除方法

    1.boolean delete() 删除文件或目录,如果表示目录,则目录下必须为空才能删除
    2.boolean deleteOnExit() 文件使用完成后删除

  ③、判断方法

    1.boolean canExecute()判断文件是否可执行
    2.boolean canRead()判断文件是否可读
    3.boolean canWrite() 判断文件是否可写
    4.boolean exists() 判断文件或目录是否存在
    5.boolean isDirectory()  判断此路径是否为一个目录
    6.boolean isFile()  判断是否为一个文件
    7.boolean isHidden()  判断是否为隐藏文件
    8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断

  ④、获取方法

    1.String getName() 获取此路径表示的文件或目录名称
    2.String getPath() 将此路径名转换为路径名字符串
    3.String getAbsolutePath() 返回此抽象路径名的绝对形式
    4.String getParent()//如果没有父目录返回null
    5.long lastModified()//获取最后一次修改的时间
    6.long length() 返回由此抽象路径名表示的文件的长度。
    7.boolean renameTo(File f) 重命名由此抽象路径名表示的文件。
    8.File[] liseRoots()//获取机器盘符
    9.String[] list()  返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    10.String[] list(FilenameFilter filter) 返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。

//File(File parent, String child)
//从父抽象路径名和子路径名字符串创建新的 File实例。
File dir = new File("D:"+File.separator+"IO");
File file = new File(dir,"a.txt"); //判断dir 是否存在且表示一个目录
if(!(dir.exists()||dir.isDirectory())){
//如果 dir 不存在,则创建这个目录
dir.mkdirs();
//根据目录和文件名,创建 a.txt文件
file.createNewFile(); }
//返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
System.out.println(file.getName()); //a.txt
//返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。
System.out.println(file.getParent());//D:\IO
//将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。
System.out.println(file.getPath()); //D:\IO\a.txt

 

4、File 的一些技巧

  ①、打印给定目录下的所有文件夹和文件夹里面的内容 

public static void getFileList(File file){
//第一级子目录
File[] files = file.listFiles();
for(File f:files){
//打印目录和文件
System.out.println(f);
if(f.isDirectory()){
getFileList(f);
}
}
}

  测试:

public static void main(String[] args) throws Exception {
File f = new File("D:"+File.separator+"WebStormFile");
getFileList(f);
}

  

 

Java IO详解(一)------File 类的更多相关文章

  1. Java IO 详解

    Java IO 详解 初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正, ...

  2. JAVA IO详解

    [案例1]创建一个新文件 1 2 3 4 5 6 7 8 9 10 11 import java.io.*; class hello{     public static void main(Stri ...

  3. Java IO流中的File类学习总结

    一.File类概述 File类位于java.io包中,是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类有多种重载的构造方法.File类保存文件或目录的各种 ...

  4. JAVA IO 详解2

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  5. Java IO详解(转)

    IO是Java及众多编程语言很重要的一块,同时很多程序的瓶颈和耗时操作也都在IO这块. 一.简介 IO操作面临很多问题,信息量的巨大,网络的环境等等,因为IO不仅仅是对本地文件.目录的操作,有时对二进 ...

  6. Java IO详解(一)------字节输入输出流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  7. Java IO详解(六)------序列化与反序列化(对象流)

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  8. Java IO详解(五)------包装流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  9. Java IO详解(六)------随机访问文件流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

随机推荐

  1. 一个web应用的诞生(9)--回到用户

    在开始之前,我们首先根据之前的内容想象一个场景,用户张三在网上浏览,看到了这个轻博客,发现了感兴趣的内容,于是想要为大家分享一下心情,恩?发现需要注册,好,输入用户名,密码,邮箱,并上传头像后,就可以 ...

  2. Git 入门和常用命令详解

    git 使用使用教程   git 使用简易指南  常用 Git 命令清单 下载   https://git-scm.com/downloads 工作流 本地仓库由三部分组成. 工作区:保存实际的文件( ...

  3. 20155214 2016-2017-2 《Java程序设计》第5周学习总结

    20155214 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.错误会被包装为可抛出的对象,继承自java.lang.Throwable类. 2.可以利 ...

  4. MyBatis使用statementType="STATEMENT"

    statementType="STATEMENT"是使用非预编译,现在我需要动态传人表名和字段名,所以需要用STATEMENT,使用之后所有变量取值都要改成${xxxx},而不是# ...

  5. B/S 和 C/S两种架构

    一: 什么是B/S(Browser/Server)架构? 应用系统完全放在应用服务器上, 并通过应用服务器同数据库服务器进行通信,系统界面 是通过浏览器来展现的. T是浏览器模式. 优点: 1)客户端 ...

  6. vim工具

    今天和同事讨论使用什么看代码,使用什么写代码的问题.我觉得source insight用来看代码真的还是蛮舒服的,但是他觉得他习惯了VS,用着顺手. 但是我的想法是,有好的工具,得先花点时间去学习使用 ...

  7. ASP.NET CORE部署到Linux

    ASP.NET CORE部署到CentOS中 在Linux上安装.NET Core 参考:https://www.microsoft.com/net/core#linuxcentos 配置Nginx ...

  8. Swift中枚举的总结以及使用

    枚举定义了一组具有相关性的数据,是开发者可以再带吗中以一个安全的方式来使用这些值,以又助于提供代码的可读性. 在Swift中,枚举可以分成两种:任意类型的枚举和指定类型的枚举,结构如下: //任意类型 ...

  9. c的旅程---字符

    输出菱形实验: /***************** 2017年四月十六. 第一个例子,输出菱形.就是找关系. 这是当n= 3时, * *** * ******************/ #inclu ...

  10. 开发Angular库的简单指导(译)

    1. 最近工作上用到Angular,需要查阅一些英文资料,虽然英文非常烂,但是种种原因又不得不硬着头皮上,只是每次看英文都很费力,因此决定将一些比较重要的特别是需要反复阅读的资料翻译一下,以节约再次阅 ...