io系列之其他类
一、File类:将文件或者文件夹封装成对象。
方便对文件和文件夹的属性信息进行操作。
File对象可以作为参数传递给流的构造函数。
注意: 文件夹名称也可带有扩展名。
构造函数:
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
如: File f1 = new File("c:\\abc\\a.txt");
或:File f1 = new File("a.txt");
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
如: File f2 = new File("c:\\abc","b.txt");
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例
如: File d = new File("d:\\abc");
File f3 = new File(d,"c.txt");
目录分割符: tatic String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
作用 : 为了解决路径名称字符串中的“\\”不具有跨操作系统平台性的问题。
如:"c:\\abc\\a.txt" 可以改写为: "c:"+File.separator+"abc"+File.separator+"a.txt" 。
其它方法:
1、创建:
boolean createNewFile() 在调用的对象指定路径下不存在指定文件时,创建这个文件,并返回true,否则返回false。
boolean mkdir() 创建此抽象路径名指定的目录,如果目录已存在,则不创建,返回false(只能创建一级目录)。
boolean mkdirs()创建此抽象路径名指定的目录,如果目录已存在,则不创建,返回false(可以创建多级目的)。
2、删除:
boolean delete() 在调用的对象指定路径下存在指定文件时,删除这个文件,并返回true,否则返回false。
void deleteOneExit() 在虚拟机退出的时候,删除调用对象指定路径下的文件。
3、判断:
boolean exists() 测试此抽象路径名表示的文件或目录是否存在。存在就返回true, 否则返回false。
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
注意:在需要判断文件对象是文件还是目录时,必须先判断该文件对象封装的内容是否存在。!!
boolean isHidden() 测试此文件是否为一个隐藏文件。
boolean isAbsolute() 测试此抽象路径名是否为绝对路径名。
boolean canExecute() 判断该路径对应文件是否问可执行文件,可执行返回true,否则返回false。
boolean canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。
4、获取:
String getName() 返回由该File对象锁表示的的文件或者文件夹的名称(只是名字)。
String getPath()返回此File对象创建时传入的路径。
String getAbsolutePath()返回此File对象表示文件或文件夹的绝对路径。
File getAbsolutePath()返回此File对象表示文件或文件夹的绝对路径(该路径被封装成File对象)。
String getParent()返回此File对象表示的父目录(该父目录只是建立File对象时传入的路径上的父目录)。
long lastModified() 返回此File对象所表示文件或文件夹最后一次被修改的时间。
long length() 返回由此抽象路径名表示的文件的长度。(即 大小)。
boolean renameTo(File dest) 为File对象指定文件改名字(路径也可以改,类似剪切并改名)
5、List方法:
Static File[] listRoots() 列出可用的系统根目录(如:c/d/e/f盘)
String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录
String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录
(包含隐藏文件,且调用该方法的File对象封装的是一个存在的目录,是文件就会返回空)
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
这其中的FilenameFilter是过滤器, 要另外新建(实现FilenameFilter接口的类,只有一个方法,一般匿名内部类)
二、Propperties类
Properties是HashTable的子类,就是说其具有Map集合的特点,而且其中存储的键值对都是字符串。
我们可以使用Map集合的共有方法(keySet,或者entrySet等方法),也可以使用其特有的方法来操作数据。
因为Properties是一个与IO技术相结合的容器,所以我们一般使用其特有的方法类操作数据。
作用: 可以用于键值对形式的配置文件。(所以我们在加载数据的时候就要有固定的格式: 键 = 值 )。
String getProperty(String key) 用指定的键在此属性列表中搜索属性。
String getProperty(String key, String defaultValue) 用指定的键在属性列表中搜索属性。
void list(PrintStream out) 将属性列表输出到指定的输出流。
void list(PrintWriter out) 将属性列表输出到指定的输出流。
void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。
void load(Reader reader) 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
void |
store(Writer writer, String comments) 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。 |
void |
store(OutputStream out, String comments) 以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 |