File类和IO流
1、File类
-
File 类是java.io包下代表与平台(os)无关的文件和目录
-
File 类无法操作文件的内容。能新建、删除、重命名、获取文件的名字、大小
-
构造器:
-
new File(String pathname)
-
相对路径:./ 当前项目下
-
…/ 当前项目的上一级
-
…/…/ 上两级
递归删除文件夹所有内容
-
/**
-
@author lijian
-
@creat 2020-11-01 20:16
-
循环删除一个文件夹,但是文件夹里不知道包含什么内容
*/
public class Test2 {
public static void main(String[] args) {
File file = new File(“d:/testIO”);
remove(file);
}
public static void remove(File file){
//1、取出该文件夹下的所有子文件及目录
File[] files = file.listFiles();
//2、去遍历每个文件夹删除他
for (File file1 : files) {
//2.1判断每个子级对象是否是目录
if (file1.isFile()){
//2.1.1说明是文件删除文件
file1.delete();
}else{
//2.1.2说明是目录,继续调用remove方法删除本身
remove(file1);
}
}
//3、将file删除
file.delete();
}
}
-
### 2、IO
* IO流:读内容,写内容。
* IO流分类:
* 1、输入流-读:程序《----外界(磁盘上文件)
* 输出流-写:程序----》文件、网络。硬件设备
* 2、字节流:byte,处理以字节形式存贮的数据(音、视频,图片)
* 字符流:bit,处理大量字符的数据【内存较大的文本文档】
* 3、角色不同:
* 节点流:原始流,最基本的流
* 处理流:(提高效率、提供一些方便的操作)
* 四大顶级父类:(抽象类)
* 字节输入:InputStream ---->FileInputStream
* 字节输出: OutputStream ---->FileOutputStream *
* 字符输入: Reader ----->FileRead
* 字符输出: Writer ----->FileWriter
#### 2.1使用步骤
1、流对象的创建:
new FileInputStream(File file)
new FileInputStream(String pathName)
2、操作:
red()执行一次,读取一个字节(int形式表示),读到结尾返回-1。
red(byte[] )一次读取n个字节到byte数组中。读到末尾返回-1
write() 执行一次,写一个字节。
write(byte[] ) 执行一次读取n个字节
3、关闭操作:
### 3、处理流:
* 缓冲流:
* 字节输入缓冲流:BufferedInputStream
* 字节输出缓冲流; BufferedOutInputStream
* 字符输入缓冲流: BufferReader
* readline() 读取一行,末尾为null
* 字符输出缓冲流: BufferWriter
* writeLine() 换行