File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成。值得指出的是,不管是文件还是目录都是使用File来操作的,File能新建、删除、重命名文件和目录,File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

  File类相关的方法参考链接:https://docs.oracle.com/javase/9/docs/api/overview-summary.html

  • Field Summary

    Fields
    Modifier and Type Field Description
    static String pathSeparator
    The system-dependent path-separator character, represented as a string for convenience.                                                                                                                                     
    static char pathSeparatorChar
    The system-dependent path-separator character.
    static String separator
    The system-dependent default name-separator character, represented as a string for convenience.
    static char separatorChar
    The system-dependent default name-separator character.
  • Constructor Summary

    Constructors
    Constructor Description
    File​(File parent, String child)
    Creates a new File instance from a parent abstract pathname and a child pathname string.                                                                                                                                        
    File​(String pathname)
    Creates a new File instance by converting the given pathname string into an abstract pathname.
    File​(String parent, String child)
    Creates a new File instance from a parent pathname string and a child pathname string.
    File​(URI uri)
    Creates a new File instance by converting the given file: URI into an abstract pathname.
  • Method Summary

    All MethodsStatic MethodsInstance MethodsConcrete MethodsDeprecated Methods
    Modifier and Type Method Description
    boolean canExecute​()
    Tests whether the application can execute the file denoted by this abstract pathname.
    boolean canRead​()
    Tests whether the application can read the file denoted by this abstract pathname.
    boolean canWrite​()
    Tests whether the application can modify the file denoted by this abstract pathname.
    int compareTo​(File pathname)
    Compares two abstract pathnames lexicographically.
    boolean createNewFile​()
    Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist.
    static File createTempFile​(String prefix,String suffix)
    Creates an empty file in the default temporary-file directory, using the given prefix and suffix to generate its name.
    static File createTempFile​(String prefix,String suffix,File directory)
    Creates a new empty file in the specified directory, using the given prefix and suffix strings to generate its name.
    boolean delete​()
    Deletes the file or directory denoted by this abstract pathname.
    void deleteOnExit​()
    Requests that the file or directory denoted by this abstract pathname be deleted when the virtual machine terminates.
    boolean equals​(Object obj)
    Tests this abstract pathname for equality with the given object.
    boolean exists​()
    Tests whether the file or directory denoted by this abstract pathname exists.
    File getAbsoluteFile​()
    Returns the absolute form of this abstract pathname.
    String getAbsolutePath​()
    Returns the absolute pathname string of this abstract pathname.
    File getCanonicalFile​()
    Returns the canonical form of this abstract pathname.
    String getCanonicalPath​()
    Returns the canonical pathname string of this abstract pathname.
    long getFreeSpace​()
    Returns the number of unallocated bytes in the partition named by this abstract path name.
    String getName​()
    Returns the name of the file or directory denoted by this abstract pathname.
    String getParent​()
    Returns the pathname string of this abstract pathname's parent, or null if this pathname does not name a parent directory.
    File getParentFile​()
    Returns the abstract pathname of this abstract pathname's parent, or null if this pathname does not name a parent directory.
    String getPath​()
    Converts this abstract pathname into a pathname string.
    long getTotalSpace​()
    Returns the size of the partition named by this abstract pathname.
    long getUsableSpace​()
    Returns the number of bytes available to this virtual machine on the partition named by this abstract pathname.
    int hashCode​()
    Computes a hash code for this abstract pathname.
    boolean isAbsolute​()
    Tests whether this abstract pathname is absolute.
    boolean isDirectory​()
    Tests whether the file denoted by this abstract pathname is a directory.
    boolean isFile​()
    Tests whether the file denoted by this abstract pathname is a normal file.
    boolean isHidden​()
    Tests whether the file named by this abstract pathname is a hidden file.
    long lastModified​()
    Returns the time that the file denoted by this abstract pathname was last modified.
    long length​()
    Returns the length of the file denoted by this abstract pathname.
    String[] list​()
    Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname.
    String[] list​(FilenameFilter filter)
    Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
    File[] listFiles​()
    Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.
    File[] listFiles​(FileFilter filter)
    Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
    File[] listFiles​(FilenameFilter filter)
    Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
    static File[] listRoots​()
    List the available filesystem roots.
    boolean mkdir​()
    Creates the directory named by this abstract pathname.
    boolean mkdirs​()
    Creates the directory named by this abstract pathname, including any necessary but nonexistent parent directories.
    boolean renameTo​(File dest)
    Renames the file denoted by this abstract pathname.
    boolean setExecutable​(boolean executable)
    A convenience method to set the owner's execute permission for this abstract pathname.
    boolean setExecutable​(boolean executable, boolean ownerOnly)
    Sets the owner's or everybody's execute permission for this abstract pathname.
    boolean setLastModified​(long time)
    Sets the last-modified time of the file or directory named by this abstract pathname.
    boolean setReadable​(boolean readable)
    A convenience method to set the owner's read permission for this abstract pathname.
    boolean setReadable​(boolean readable, boolean ownerOnly)
    Sets the owner's or everybody's read permission for this abstract pathname.
    boolean setReadOnly​()
    Marks the file or directory named by this abstract pathname so that only read operations are allowed.
    boolean setWritable​(boolean writable)
    A convenience method to set the owner's write permission for this abstract pathname.
    boolean setWritable​(boolean writable, boolean ownerOnly)
    Sets the owner's or everybody's write permission for this abstract pathname.
    Path toPath​()
    Returns a java.nio.file.Path object constructed from the this abstract path.
    String toString​()
    Returns the pathname string of this abstract pathname.
    URI toURI​()
    Constructs a file: URI that represents this abstract pathname.
    URL toURL​()
    Deprecated.

    This method does not automatically escape characters that are illegal in URLs. It is recommended that new code convert an abstract pathname into a URL by first converting it into a URI, via the toURImethod, and then converting the URI into a URL via the URI.toURL method.

 1、访问文件和目录

 package com.zyjhandsome.io;

 import java.io.*;

 public class FileTest {

     public static void main(String[] args) throws IOException
{
// 以当前路径来创建一个File对象
File file = new File(".");
// 直接获取文件名, 输出一点
System.out.println(file.getName());
// 获取相对路径的父路径可能出错, 下面代码输出null
System.out.println(file.getParent());
// 获取绝对路径
System.out.println(file.getAbsoluteFile());
// 获取绝对路径
System.out.println(file.getAbsoluteFile().getParent());
// 当前路径下创建一个临时文件
File tmpFile = File.createTempFile("aaa", ".txt", file);
// 指定当JVM退出时候删除该文件
tmpFile.deleteOnExit();
// 以系统当前时间作为新文件名来创建新文件
File newFile = new File(System.currentTimeMillis() + "");
System.out.println("newFile对象是否存在1: " + newFile.exists());
// 以指定newFile对象来创建一个文件
newFile.createNewFile();
System.out.println("newFile对象是否存在2: " + newFile.exists());
// 以newFile对象来创建一个目录,因为newFile已经存在,所以下面方法返回false, 即无法创建该目录
System.out.println("newFile.mkdir():" + newFile.mkdir());
System.out.println("----------------------");
// 使用list()方法列出当前路径下的所有文件和路径
String[] fileList = file.list();
for (String fileName : fileList)
{
System.out.println(fileName);
}
System.out.println("----------------------");
// listRoots()静态方法列出所有的磁盘根路径
File[] roots = File.listRoots();
System.out.println("====系统所有根路径如下====");
for (File root : roots)
{
System.out.println(root);
}
}
}
 .
null
D:\zhaoyingjun\eclipse-workspace\CollectionTest\.
D:\zhaoyingjun\eclipse-workspace\CollectionTest
newFile对象是否存在1: false
newFile对象是否存在2: true
newFile.mkdir():false
----------------------
.classpath
.project
.settings
1537712414564
1537712424492
1537712893895
1537712926829
1537712940906
1537713158525
1537713167968
1537774060515
aaa1610208071466755969.txt
bin
src
----------------------
====系统所有根路径如下====
C:\
D:\

 2、文件过滤器

  在File类的list()方法中可以接收一个FilenameFilter参数,通过该参数可以只列出符合条件的文件。这里的FilenameFilter接口和javax.swing.filechooser包下的FileFilter抽象类的功能非常相似,可以把FileFilter当成是FilenameFilter的实现类。

  FilenameFilter接口里包含了一个accept(File dir, String name)方法,该方法将依次对指定File的所有子目录或者文件进行迭代,如果该方法返回true,则list()方法会列出该子目录或者文件。

 package com.zyjhandsome.io;

 import java.io.*;

 public class FilenameFilterTest {

     public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File(".");
// 使用Lambda表达式(目标类型是FilenameFilter)实现文件过滤器
// 如果文件名以.java结尾, 或者文件对应一个路径,则返回true
String[] nameList = file.list((dir, name) ->
name.endsWith(".java") || new File(name).isDirectory());
for (String name : nameList)
{
System.out.println(name);
}
}
}
 .settings
bin
src

Java 输入/输出——File类的更多相关文章

  1. 第15章-输入/输出 --- File类

    (一) Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入.输出两种IO流. 每种输入.输出流又分为字节流和字符流两大类: (1)字节流以字节为单位来处理输入.输出 ...

  2. I/O(输入/输出)---File类

    File:表示文件与目录.用它来对文件或目录进行基本操作,它可以查出文件的基本相关信息,比如:名称.最后的修改日期.文件大小. 使用File类操作文件和目录属性步骤: 1.引入File类 import ...

  3. Java 输入/输出 反射

    Java  输入/输出   反射 输入输出和反射 一.数据流的基本概念 流一般分为 ( Input Stream ) 和输出流 ( Output Stream ) 两类,但这种划分并不是绝对的.比如一 ...

  4. Java学习:File类

    Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...

  5. java中的File类

    File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真 ...

  6. Java输入/输出教程

    Java输入/输出(I/O)处理从源读取数据并将数据写入目标.通常,读取存储在文件中的数据或使用I/O将数据写入到文件中. java.io和java.nio包中包含处理输入/输出的Java类.java ...

  7. java学习一目了然——File类文件处理

    java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...

  8. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  9. Java基础之File类的使用

    Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...

随机推荐

  1. SQL 中的LastIndexOf,截取最后一次出现字符后面的字符(转)

    SQL如何取出一个字符串中最后一个特殊字符右边的字符,例如:10*20*300,怎样得到300? 使用reverse配合charindex来实现. reverse是把字符串倒置,然后通过charind ...

  2. 配置Django

    第一步,安装Python,在这里下载,如果你安装在C:\Python27, 把C:\Python27;C:\Python27\Scripts;C:\Python27\Lib 加到你的Path 第二步: ...

  3. 删除最少字符生成Palindrome

    看到一个哥们G家电面试题,求删除最少字符生成Palindrome.大神们都在讨论dp,我完全想不到. 放一个没优化的DFS. 乐神说是O(n3)复杂度, 有机会的话要减少使用substring,并且要 ...

  4. openssl 非对称加密DSA,RSA区别与使用介绍

    在日常系统管理工作中,需要作一些加解密的工作,通过openssl工具包就能完成我们很多需求! 1. openssl RSA 加解密 RSA是基于数论中大素数的乘积难分解理论上的非对称加密法,使用公私钥 ...

  5. 安卓程序代写 网上程序代写[原]Android应用的自动更新模块

    软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...

  6. 用opencv抽取视频的帧并保存为连续的图片

    转自http://blog.csdn.net/timidsmile/article/details/8283319 #include"stdafx.h" #include < ...

  7. python中的selectors模块

    它的功能与linux的epoll,还是select模块,poll等类似:实现高效的I/O multiplexing,  常用于非阻塞的socket的编程中: 简单介绍一下这个模块,更多内容查看 pyt ...

  8. easyradius通讯接口 V4全新升级,显示同步失败原因,方便用户寻找故障

    最近一段时间,我们做了很多的努力,不仅完成了WayOs.BV.ROS.IK.PA接口的重写(主要加入智能判断,能处理的直接处理,不能处理的告诉用户),而且在原有DDNS访问失败的提示下,升级了同步失败 ...

  9. mysql数据库建立的数据库在哪个文件夹?

    一般在安装目录下的data文件夹下,或者在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\dat ...

  10. [Laravel] 12 - WEB API : cache implement

    前言 Ref: https://www.imooc.com/video/2873 服务端如何为客户端(app)的首页提供数据接口, 本篇用此作为例子演示接口的实现. 单例模式 一.三大原则 单例实现 ...