File类
- 它是文件和目录路径名的抽象表示。
- 文件和目录是可以通过File封装成对象的。
- 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的。
File类的构造方法
File(String pathname)
File(String parent, String child)
File(File parent, String child)
创建功能
public boolean createNewFile()
当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空
文件
public boolean mkdir()
创建由此抽象路径名命名的目录
public boolean mkdirs()
创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
判断
public boolean isDirectory()
测试此抽象路径名表示的File是否为目录
public boolean isFile()
测试此抽象路径名表示的File是否为文件
public boolean exists()
测试此抽象路径名表示的File是否存在
获取
public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
public String getPath()
将此抽象路径名转换为路径名字符串
public String getName()
返回由此抽象路径名表示的文件或目录的名称
public String[] list()
返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles()
返回此抽象路径名表示的目录中的文件和目录的File对象数组
删除
public boolean delete()
删除由此抽象路径名表示的文件或目录
相对路径与绝对路径
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\cast\java.txt
- 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\java.txt
IO流
IO流介绍 IO:输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载 IO流的分类
- 按照数据的流向
输入流:读数据 输出流:写数据 - 按照数据类型来分
字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 - IO流的使用场景
如果操作的是纯文本文件,优先使用字符流如果操作的是图片、视频、音频等二进制文件。优先使用字节流如果不确定文件类型,优先使用字节流。字节流是万能的流
字节流写数据
void write(int b)
将指定的字节写入此文件输出流 一次写一个字节数据
void write(byte[] b)
将 b.length字节从指定的字节数组写入此文件输出流 一次写一个字节数组数据
void write(byte[] b, int o?, int len)
将 len字节从指定的字节数组开始,从偏移量o?开始写入此文件输出流 一次写一个字节数组的部分数据
小问题
如何实现换行?
- windows中输入\r\n
- inux:\n
- mac:\r
如何实现追加写入
public FileOutputStream(String name,boolean append)
创建文件输出流以指定的名称写入文件。如果第二个参数为true ,则字节将写入文件的末尾而不是开头
关于异常处理
可以使用try{ finally{ }强制执行清除文件对象操作
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常的处理代码;
}finally{
执行所有清除操作;
}
字节输入流
FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream ,该文件由文
件系统中的路径名name命名字节输入流读取数据的步骤
创建字节输入流对象调用字节输入流对象的读数据方法
释放资源
案例
|