美文网首页
18. Java IO: File

18. Java IO: File

作者: kopshome | 来源:发表于2017-11-26 21:31 被阅读0次

    想要查看此教程的目录请点击:Java IO教程目录贴地址


    Java IO 的File类可以帮助你访问底层的文件系统,使用File类你可以:

    • 查看文件或目录是否存在
    • 如果目录不存在,可以创建
    • 读取文件的长度
    • 删除或移动文件
    • 删除文件
    • 查看路径指向的事文件还是目录
    • 读取目录下的文件列表

    这篇文章会告诉你更多的相关操作。
    注意:File只允许你访问文件和文件系统的元数据,如果你需要读写文件的内容,那么你可以使用FileInputStream,FileOutputStream和RandomAccessFile等。
    注意:如果你使用的是Java NIO,你就得使用java.nio.FileChannel。(你可以两种方法都使用,但是你只是想用Java NIO)

    实例化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();
    

    如果目录不存在,那么创建一个

    你可以用File类创建一个目录,如果该目录不存在。相关的方法为mkdir()和mkdirs()。

    利用mkdir()创建一个文件夹,如果该文件夹不存在:

    File file = new File("c:\\users\\jakobjenkov\\newdir");
    boolean dirCreated = file.mkdir();
    

    假如c:\users\jakobjenkov目录已经存在,上面的代码会创建一个jakobjenkov的子目录newdir。如果目录已经创建好,mkdir()会返回true,如果没有则返回false。

    mkdirs()会创建所有所有参数中不存在的路径:

    File file = new File("c:\\users\\jakobjenkov\\newdir");
    
    boolean dirCreated = file.mkdirs();
    

    假如C盘已经存在,例子中的代码会创建所有的相关文件夹,如果创建好则返回true,反之则为not。

    文件长度

    以字节读取文件的长度,调用length()方法,下面是一个例子:

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

    重命名或移动文件

    重命名或移动一个文件,调用renameTo()方法:

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

    正如前面所简要提到的,renameTo()方法也可以用来移动文件到另一个目录。给renameTo()方法传递的新目录名称不要与文件所在的目录一样。

    renameTo()方法返回布尔类型的值,表示重命名是否成功。导致重命名或移动文件失败有很多原因,比如文件已经被其他程序打开,没有足够的权限等等。

    删除文件

    删除文件需要调用delete() 方法:

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

    此方法也会返回一个布尔值表示文件是否删除成功。删除文件失败的原因可能有文件已经被其他程序打开,没有足够的权限等等。

    确定指向的路径是文件还是目录

    File实例可以指向文件或目录。你可以检查指向的具体是什么,这里调用isDirectory()方法。如果方法返回true那么说明指向的是目录,反之则为文件:

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

    读取目录下的文件列表

    你可以通过调用list()方法或listFiles() 方法获得一个目录下的文件列表,list()方法返回一个String数组,代表指向的文件或目录的绝对路径。listFiles() 方法返回一个File数组,代表着相应文件的File对象:

    File file = new File("c:\\data");
    
    String[] fileNames = file.list();
    
    File[]   files = file.listFiles();
    

    相关文章

      网友评论

          本文标题:18. Java IO: File

          本文链接:https://www.haomeiwen.com/subject/fujlbxtx.html