文章目录
常用文件操作
创建文件的相关构造器
- new File(String pathname) //根据路径构建一个File对象
- new File(File parent, String child) //根据父录文件 + 子路径构建
- new File(String parent, String child) //根据父目录 + 子路径构建
方法:**createNewFile()**创建新文件
获取文件的相关信息的常用方法
- getName //获取文件名
- getAbsolutePath //获取绝对路径
- getParent //父级目录
- length //文件大小(字节)
- exists //是否存在这个文件
- isFile //是否为文件
- isDirectory //是否为目录(在Java编程中,目录也被当做文件)
目录的操作和文件删除
- mkdir创建一级目录
- mkdirs创建多级目录
- delete删除空目录或文件
流(stream)的分类
- 按操作数据单位的不同分为:字节流(8 bit),字符流(按字符)
- 按数据的流向不同分为:输入流、输出流
- 按流的角色不同分为:字节流、处理流/包装流
(抽象基类) | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
Java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象基类派生的
由着4个类派生的子类名称都是以其父类名作为子类名后缀
IO流体系常用的类
InputStream抽象类是所有类字节输入流的超类
InputStream常用的子类
- FileInputStream:文件输入流
- BufferedInputStream:缓冲字节输入流
- ObjectInputStream:对象字节输入流
OutputStream常用子类
- FileOutputStream:文件输出流
FileReader和FileWriter
-
FileReader和FileWriter都是字符流,按照字符来操作IO
-
FileReader相关方法:
- new FileReader(File/String)
- read:每次读取单个字符,返回该字符,如果到文件末尾返回-1
- read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1
相关API:
- new String(char[]):将char[]转换为String
- new String(char[],off,len):将char[]指定部分转换为String
-
FileWriter相关方法:
- new FileWriter(File/Writer):覆盖模式,相当于流的指针在首端
- new FileWriter(File/Writer,true):追加模式,相当于流的指针在尾端
- write(int):写入单个字符
- write(char[]):写入指定数组
- write(char[],off,len):写入指定数组的指定部分
- write(String):写入整个字符串
- write(String,off,len):写入字符串的指定部分
相关API:
- String类:toCharArray 将String转化为char[]
-
注意:FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定文件
节点流和处理流
节点流可以从一个特定的数据源读写数据,如FileReader、FileWriter
处理流(也叫包装流)是“连接”在已存在的的流(节点流或处理流)之上,为程序提供更为强大的读写功能,如BufferedReader、BufferedWriter
字节流字符流一览
节点流与处理流的区别与联系
- 节点流是底层流/低级流,直接跟数据源相接
- 处理流包装字节流,既可以消除不同字节流的实现差异,也可以提供更方便的方法来完成输入输出
- 处理流对节点流进行了包装,使用了修饰器设计模式,不会直接与数据源相连
处理流的功能主要体现在以下两个方面:
- 性能的提高:主要以增加缓冲的方式来提高输入输出的效率
- 操作的便捷:处理流可提供一系列便捷的方法来一次输入大批量的数据,使用更加灵活方便
Properties类
-
HashTable下的一个子类
-
专门用于读写配置文件的集合类
-
配置文件格式:
键=值
键=值
-
-
注意:键值对不需要有空格,值不需要用引号,默认类型为String
常用方法:
- load:加载配置文件的键值对到Properties对象中
- list:将数据显示到指定设备
- getProperty(key):根据键获取值
- setProperty(key,value):设置键值对到Properties对象
- sotre:将Properties中的键值对存储到配置文件,在idea中,保存信息到配置文件,如果含有中文,会存储为Unicode码