【读书笔记】《java从小白到大牛》文件管理

quange 2022-5-6 132 5/6

Java语言使用File类对文件和目录进行操作,查找文件时需要实现FilenameFilterFileFilter接口。另外,读写文件内容可以通过FileInputStream、FileOutputStream、FileReader和FileWriter类实现,它们属于I/O流,下一节会详细介绍I/O流。这些类和接口全部来源于java.io包。

File类

File类表示一个与平台无关的文件或目录。File类名很有欺骗性,初学者会误认为是File对象只是一个文件,但它也可能是一个目录。

File类中常用的方法如下。

01. 构造方法

  • File(String path):如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File对象表示的是文件。
  • File(String path, String name):path是路径名,name是文件名。
  • File(File dir, String name):dir是路径对象,name是文件名。

02. 获得文件名

  • String getName( ):获得文件的名称,不包括路径。
  • String getPath( ):获得文件的路径。
  • String getAbsolutePath( ):获得文件的绝对路径。
  • String getParent( ):获得文件的上一级目录名。

03. 文件属性测试

  • boolean exists( ):测试当前File对象所表示的文件是否存在。
  • boolean canWrite( ):测试当前文件是否可写。
  • boolean canRead( ):测试当前文件是否可读。
  • boolean isFile( ):测试当前文件是否是文件。
  • boolean isDirectory( ):测试当前文件是否是目录。

04. 文件操作

  • long lastModified( ):获得文件最近一次修改的时间。
  • long length( ):获得文件的长度,以字节为单位。
  • boolean delete( ):删除当前文件。成功返回 true,否则返回false。
  • boolean renameTo(File dest):将重新命名当前File对象所表示的文件。成功返回 true,否则返回false。

05.目录操作

  • boolean mkdir( ):创建当前File对象指定的目录。
  • String[] list():返回当前目录下的文件和目录,返回值是字符串数组。
  • String[] list(FilenameFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实现FilenameFilter接口对象,返回值是字符串数组。
  • File[] listFiles():返回当前目录下的文件和目录,返回值是File数组。
  • File[] listFiles(FilenameFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实现FilenameFilter接口对象,返回值是File数组。
  • File[] listFiles(FileFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实现FileFilter接口对象,返回值是File数组。

对目录操作有两个过滤器接口:FilenameFilterFileFilter。它们都只有一个抽象方法accept,FilenameFilter接口中的accept方法如下:

  • boolean accept(File dir, String name):测试指定dir目录中是否包含文件名为name的文件。

FileFilter接口中的accept方法如下:

  • boolean accept(File pathname):测试指定路径名是否应该包含在某个路径名列表中。

注意 路径中会用到路径分隔符,路径分隔符在不同平台上是有区别的,UNIX、Linux和macOS中使用正斜杠“/”,而Windows下使用反斜杠“\”。Java是支持两种写法,但是反斜杠“\”属于特殊字符,前面需要加转义符。例如C:\Users\a.java在程序代码中应该使用C:\Users\a.java表示,或表示为C:/Users/a.java也可以。

提示 在编程时尽量使用相对路径,尽量不要使用绝对路径。"./TestDir"就是相对路径,相对路径中会用到点“.”,在目录中一个点“.”表示当前目录,两个点表示“..”表示父目录。

- THE END -
最后修改:2022年5月6日
0

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的所有下载文件均为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。

共有 0 条评论