Java IO流总结
程序需要读取文件信息;程序需要写入信息到文件。
这些操作的完成是同过I/O流技术实现的。5566543ddf0786937cfc5189e4fe12d4
文件管理
查找文件时通过实现FilenameFilter或FileFilter接口
读写文件时可以通过两组java.io包中I/O流进行操作,都在。
- FileInputStream、FileOutputStream
- FileReader、FileWriter
File类
Java语言通过File类来对文件和目录进行操作,File不只是文件,也有可能是目录。
-
构造方法
- File(String path): 如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File对象标识的是文件。
- File(String path, String name):path是路径名,name是文件名。
- File(File dir, String name):dir是路径对象,name是文件名。
-
获得文件名
-
String getName():获得文件的名称,不包括路径
-
String getPath():获得文件的路径 一直到父级路径
-
String getAbsolutePath():获得文件的绝对路径
-
String getParent():获得文件的上一级目录名
路径=parent+"/"+name
绝对路径和路径
路径就是路径,可以是相对路径,这里的相对路径是相对于本项目, 也可以磁盘路径
绝对路径就是磁盘路径
-
-
文件属性测试
- boolean exists():测试当前File对象所表示的文件是否存在。
- boolean canWrite():测试当前文件是否可写。
- boolean canRead():测试当前文件是否可读。
- boolean isFile():测试当前文件是否是文件。
- boolean isDirectory():测试当前文件是否是目录。
-
文件操作
- long lastModified():获得文件最近一次修改的时间。//获得值是毫秒值
- long length():获得文件的长度,以字节为单位。
- boolean delete():删除当前文件。成功返回true,否则返回false
- boolean renameTo(File dest):将重新命名当前File对象所表示的文件。成功返回true,否则返回false。
-
目录操作
- boolean mkdir():创建当前对象指定的目录。
- String[] list():返回当前目录下的文件和目录,返回值是字符串数组。
- String[] list(FilenameFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实现FilenameFilter接口对象,返回值是字符串数组。
- File[] lsitFiles():返回当前目录下的文件和目录,返回值是File数组。
- File[] listFiles(FilenameFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实现FilenameFilter接口对象,返回值是File数组。
- File[] listFiles(FileFilter filter):返回当前目录下满足指定过滤器的文件和目录,参数是实现FileFilter接口对象,返回值是File数组。
对目录操作有两个过滤器接口:FilenameFilter和FileFilter。他们都只有一个抽象方法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也可以