IO流:
作用:
1,可以将数据从本地文件中取出来
2,可以将数据从内存保存到本地文件
File类:
1,在读写数据时告诉虚拟机要操作的(文件/文件夹)在哪
2,对(文件/文件夹)本身进行操作。包括创建,删除等。
File:它是对文件和目录路径名的抽象表示
文件和目录可以通过File封装成对象
File封装的对象仅仅是一个路径名,它可以是已存在,也可以是不存在的
File的构造方法:
File(String pathname) ; 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
File(String parent , String child) ; 从父路径名 字符串和子路径名 字符串创建新的File实例
File(File parent , String child); 从父抽象路径名和子路径名字符串创建新的File实例
绝对路径与相对路径:
绝对路径是 从盘符开始
相对路径是 相对当前项目下的路径
创建方法:
public boolean createNewFile(); 创建一个新的空文件
注意:
如果文件已存在,创建失败返回false。
如果文件不存在,创建成功返回true。
**createNewFile();**这个方法不管调用者有没有给出后缀名,只能创建文件
public boolean mkdir(); 创建一个单级文件夹
注意:
只能创建单级文件夹,不能创建多级文件夹
不管调用者有没有给出后缀名,mkdir();只能创建文件夹
public boolean mkdirs(); 创建一个多级文件夹
注意:
可以创建单级文件夹,也可以创建多级文件夹
不管调用者有没有给出后缀名,mkdirs();只能创建文件夹
删除方法:
public boolean delete(); 删除空文件夹或空文件
注意:
此方法删除的文件不走回收站,直接从硬盘里删除
如果删除的是文件那么直接删除,如果是文件夹,那么只能删除空文件夹
所以得出如果删除有内容的文件夹是不行的,并且删除有内容的文件也是不行的
File类的判断和获取方法:
public boolean isDirectory(); 测试此抽象路径名表示的File是否为目录
public boolean isFile(); 测试此抽象路径名表示的File是否为文件
public boolean exists(); 测试此抽象路径名表示的File是否存在
public String getName(); 返回此抽象路径名表示的文件或目录的名称
**public File[ ] listFiles();**获取当前文件夹下的所有文件和文件夹的File对象,并把这些对象封装到数组中返回
包括隐藏文件和隐藏文件夹都可以获取。
注意事项:
1,当调用者是一个文件时:返回的数组记录的是null,强行遍历会出现空指针
2,当调用者是一个空文件夹时:返回一个长度为0的数组,遍历不会报错
3,当调用者是一个有内容的文件夹时:获取当前文件夹下的所有文件和文件夹的File对象,并把这些对象封装到数组中返回
4,当调用者是一个有权限才能访问的文件时:返回的数组记录的是null
public static void main(String[] args) {
File file = new File("C:\\");
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);
}
}
}
IO流:
可以实现数据的永久化存储
目的:
1,将数据写到硬盘当中,实现数据的永久化存储
2,读取文件中已经存在的数据。
其中: I:表示intput,是数据从硬盘进内存的过程吗,称为读
O:表示output,是数据从内存到硬盘的过程,称为写
IO的数据传输,可以看做是一种数据的流动,按照流动的方向,以内存为参照物,进行读写操作的
理解为:内存在读,内存在写
IO流的分类:
纯文本文件定义:用windows记事本打开能读的懂,那么这样的文件就称为纯文本文件
字节流写数据:
1,创建字节输出流对象
注意:如果文件不存在,那么会自动创建文件
如果文件存在,会把文件清空
创建对象时有两个参数一个是File对象,一个是boolean类型的append开关称为续写开关
如果不写,第二个参数表示默认的false代表不要续写,那么创建对象的这行代码会清空文件!
如果写了第二参数true,表示需要续写,那么创建对象的这行代码不会清空文件!
FileOutputStream fos = new FileOutputStream("D:\\a.txt");