本帖最后由 sun2ice 于 2018-1-4 17:32 编辑
#day 09 IO
##file概述
* 文件和目录路径名的抽象表现形式,File类的对象不可变
* 构造方法
(创建了File对象, 并将其指向该路径. 不会在磁盘上创建这个文件)
`File(String pathname):` 使用指定的路径名创建一个File对象.
`File(String parent, String child)`: 根据指定的父路径和文件路径创建File对象.
`File(File parent, String child)`: 根据指定的父路径File对象和文件路径创建File对象
* 绝对路径
* 固定不可改变的路径,已盘符开头
* 相对路径
* 相对某个参照物,不能以盘符开头,eclipes中当前项目的根路径
## 常用成员方法
* 创建:
* `boolean createNewFile()`: 创建一个新文件. 返回是否创建成功(不存在时创建返回true )
* `boolean mkdir()`: 创建文件夹, 返回是否创建成功
* `boolean mkdirs()`: 创建多层 文件夹, 包括指定路径中缺少的父级目录. 返回是否创建成功
* 删除
* `boolean delete()`: 删除文件或目录. 返回是否删除成功
* 注意 删除的文件下不能有子文件夹
* 不走回收站
* 获取
* `String getPath()`: 获取创建File对象时使用的路径(创建时是相对路径则返回相对路径, 是绝对路径则返回绝对路径)
* `String getAbsolutePath()`: 获取File对象的绝对路径字符串
* `File getAbsoluteFile()`: 获取包含绝对路径的File对象
* `String getParent()`: 获取File对象的父路径字符串
* `File getParentFile()`: 获取File对象的父路径的File对象
* `String getName()`: 获取File对象代表的文件名或文件夹名(不含上层目录)
* `long length()`: 获取File对象所表示的文件的大小, 单位byte
* 注意: 如果File对象是一个文件夹, 则返回值不确定; 如果文件不存在, 则返回0L
* `long lastModified()`: 获取文件上次修改时间
* 判断
* `boolean exists()`: 判断文件或目录是否存在
* `boolean isAbsolute()`: 判断File中保存的是否是绝对路径(盘符开头)
* `boolean isDirectory()`: 判断该File对象是否为文件夹
* `boolean isFile()`: 判断该File对象是否为文件
* `boolean isHidden()`: 判断该文件或文件夹是否为隐藏的
* 修改
* `boolean renameTo(File dest)`: 修改文件名
* 注意修改的文件路径不能存在,否则修改失败
* 重要获取功能
* `String[] list()`: 获取当前路径下所有文件和目录名称(不包括父路径). File对象必须是目录, 否则会报错
* `File[] listFiles()`: 获取当前路径下的所有文件和目录的File对象. File对象必须是目录
* `static File[] listRoots()`: 返回系统的所有根路径. windows系统就是各种盘符
##Io流
* 分类
* 流向
* 输入流 读数据 FileReader Reader
* 输出流 写数据 FileWriter Writer
* 数据类型
* 字节流
* 字节输入流 读数据 InputStream
* 字节输出流 写数据 OutputStream
* 字符流
* 字符输出流 读数据 Reader
* 字符输入流 写数据 Writer
* FileInputStream类
* `int read()`: 读取一个字节, 读完返回-1
* `int read(byte[] b)`: 读取字节到数组中, 返回读取的长度. 读完返回-1
* `close()`: 释放资源
* FileOutputStream类
* `void write(byte b)`: 写一个字节
* `void write(byte[] b, int offset, int len)`: 从字节数组的指定索引开始写入指定长度个字节
* `close()`: 释放资源
|
|