1.介绍  

  java io中最常操作的就是我们电脑中的文件,将这些文件以流的形式本地读写,或者上传到网络上.java中的File类就是对这些存储于磁盘上文件的虚拟映射,这也体现了java面向对象的思想,在学习io流对文件的读写前,我们要先学习下如何通过File何操作文件;

2.构造方法

  File类直接继承自Object,并且实现了Serializable和Comparable两个接口,实现Sericalizable接口表示File对象可以序列化,对象的序列化在最后我们还会提到,而实现Comparable接口,表示File对象可以用来比较排序,File的源码中重写了Comparable接口的compareTo()方法,通过获取底层操作系统,来对File路径名按字母排序;

  首先我们看如何实例化一个File对象

File file=new File("C:\\Users\\Administrator\\Desktop\\a.txt");

  File提供了几个构造方法,大部分大同小异,上面是我们常用的一种,通过传入文件的路径名,来实例化File对象,不过需要注意的两点是

    (一)这个路径名并不需要在磁盘中真正存在,构造方法也不会检查这一点

    (二)文件路径名写法取决于你的操作系统,上面例子是在Windows系统中使用两个反斜线(\\)转义字符来表示一个反斜线(\),而在Unix系统中则是这样的"/home/myfile/data/a.txt",不过经测试,单斜线这种分隔符在Windows中同样可以,大家可以自己试一下

  其他的构造方法,这里我也列出一下,比较简单,不需多说

public File(String parent, String child)
public File(File parent, String child)
public File(URI uri)

 3.成员方法

  (1).创建功能

public boolean createNewFile()     创建新文件

public boolean mkdir()                创建单级目录

public boolean mkdirs()               创建多级目录

 public static void fileTest() throws IOException {

        File dir = new File("C:\\Users\\Administrator\\Desktop\\a\\b");
System.out.println(dir.mkdir()); //false mkdir()只能创建单级目录 System.out.println(dir.mkdirs()); //true mkdirs()用于创建多级目录
System.out.println(dir.mkdirs()); //false 已经存在的目录再次创建,则返回false File file=new File("C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt");
System.out.println(file.createNewFile()); //true createNewFile()用于创建新文件,其上级路径必须存在,否则创建失败
System.out.println(file.createNewFile()); //false 文件已存在则创建失败
}

  (2).删除功能

     public boolean delete()            删除文件

  (3).判断功能

public boolean isDirectory()           判断是否为文件夹

public boolean isFile()                   判断是否为文件

public boolean exists()                  判断路径是否存在

public boolean canRead()               判断文件是否可读

public boolean canWrite()              判断文件是否可写

public boolean isHidden()              判断是否是隐藏文件

  (4).重命名功能

public boolean renameTo(File dest)         重命名原文件

   public static void fileDeleteTest() throws IOException {
File file=new File("C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt");
boolean a= file.renameTo(new File("C:\\Users\\Administrator\\Desktop\\renameTest.txt"));
     //重命名文件的同时,还可以移动文件到新的位置
     System.out.print(a);
     //true 返回值表示重命名成功
}

  (5).基本获取功能

public String getAbsolutePath()          获取绝对路径

public String getPath()                      获取全部路径

public String getName()                    获取文件或目录名

public long length()                           获取文件大小

public long lastModified()                   获取上次修改的时间

 public static void fileGetMethod() throws IOException {

        File file=new File("C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt");

        System.out.println(file.getAbsolutePath());       //  "C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt"
System.out.println(file.getName());            // test.txt
System.out.println(file.getPath());            // "C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt"
System.out.println(file.length());            //
System.out.println(new Date(file.lastModified()));  // Wed Mar 15 13:58:50 GMT+08:00 2017 }

  (6).高级获取功能

public String[] list()            //  获取该目录下所有文件和文件夹,返回他们文件名字符串数组

public File[] listFiles()          //  获取该目录下所有文件和文件夹,返回他们的文件File对象数组

java I/O框架 (二)文件操作(File)的更多相关文章

  1. JAVASE02-Unit06: 文件操作——File 、 文件操作—— RandomAccessFile

    Unit06: 文件操作--File . 文件操作-- RandomAccessFile java.io.FileFile的每一个实例是用来表示文件系统中的一个文件或目录 package day06; ...

  2. c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习

    c#中@标志的作用   参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...

  3. Java 文件操作-File

    1.File文件操作 java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的 ...

  4. Day05:集合操作——线性表(二) / 查找表 / 文件操作——File(一)

    文件操作:https://www.cnblogs.com/wsnb8/p/11403626.html

  5. java I/O框架 (四)文件流

    文件读取 FileInputStream FileReader 文件写入 FileOutputStream FileWriter 随机文件读写 RandomAccessFile 一.文件读取 File ...

  6. Java序列化与反序列化,文件操作

    参考两篇博客: http://blog.csdn.net/moreevan/article/details/6697777 http://blog.csdn.net/moreevan/article/ ...

  7. python的文件操作file:(内置函数,如seek、truncate函数)

    file打开文件有两种方式,函数用file()或者open().打开后读入文件的内容用read()函数,其读入是从文件当前指针位置开始,所以需要控制指针位置用: 一.先介绍下file读入的控制函数: ...

  8. C#文件操作 File(静态类)

      操作某一个文件/文件夹,需要一个文件的完整路径 一.使用File的静态方法进行文件操作 1 2 3 4 5 6 7 8 9 //使用file的静态方法进行复制             File.C ...

  9. Hadoop学习笔记之二 文件操作

    HDFS分布式文件系统:优点:支持超大文件存储.流式访问.一次写入多次读取.缺点:不适应大量小文件.不适应低时延的数据访问.不适应多用户访问任意修改文件. 1.hadoop用于大数据处理,在数据量较小 ...

随机推荐

  1. Centos7.3下mysql5.7.18安装并修改初始密码的方法

    Centos7.3下mysql5.7.18安装并修改初始密码的方法 原文链接:http://www.jb51.net/article/116032.htm 作者:Javen205 字体:[增加 减小] ...

  2. shell中awk printf的用法

    打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返回一个带格式的字符串给 ...

  3. cell数组

     问题: (注意,matlab判断一个数的类型的函数是class(var)) 如果p为一个数,那么h(1)=p,是没有问题的. 如果p为一个向量,那么h(1,:)=p是没有问题的. 如果p是一个矩阵的 ...

  4. a标签的伪元素的应用——link,hover,visited,active

    a标签应用中,一般有四个状态: 鼠标未移入前(link),鼠标移入时(hover), 鼠标点击时(active),鼠标点击后(visited). <!DOCTYPE html> <h ...

  5. MOBA战斗服务器设计思路

    MOBA作为竞技类的游戏,游戏中实时高精度同步,或者又说延迟容错率的要求还算是比较高的一种. 如何做到这种同步机制呢? 常用的同步机制有两种类型:帧同步 / 指令同步 何谓帧同步? 保证双方客户端逻辑 ...

  6. json和xml的两者区别

    服务器端返回给客户端的数据一般都是JSON格式,JSON数据以键值的形式保存,数据之间以逗号分隔,{}表示对象,[]表示数组.JSON数据解析方案有四种,JSONKit,SBJson,TouchJso ...

  7. vue2.0父子组件之间通信

    父组件是通过props属性给子组件通信的来看下代码: 父组件: <parent> <child :child-com="content"></chil ...

  8. Windows Azure Storage (25) Azure Append Blob

    <Windows Azure Platform 系列文章目录> 在笔者之前的文章中,我们介绍了Azure Blob 有两种:Block Blob和Page Blob. 在这里笔者介绍Blo ...

  9. 如何解决JavaScript中0.1+0.2不等于0.3

    console.log(0.1+0.2===0.3)// true or false?? 在正常的数学逻辑思维中,0.1+0.2=0.3这个逻辑是正确的,但是在JavaScript中0.1+0.2!= ...

  10. Python面向对象篇(2)-继承

    在发表本篇随笔的时候,距离上一次发已经有一个多月了,很多朋友私信我为什么不持续更新了,在这里先跟大家说声抱歉.因为年底的工作较为繁重,实在分不出精力,更重要的也是在思考后面进阶的部分要按怎样的顺序写, ...