IO流的作用:可以在网络中传输文件,也可以读写文件
1.常用转移字符的使用
\" 相当于字符的双引号
\\ 相当于\
\r\n 相当于wimdows系统的换行
\n 相当于linux系统的换行
2.创建文件
File.separator依赖于系统的路径分隔符,为了java更好的跨平台性
示例代码:
//File.separator依赖于系统的路径分隔符
File file = new File("d:" + File.separator + "world.txt");
file.createNewFile();
3.创建文件夹
mkdir创建一级文件夹
mkdirs创建多级文件夹
示例代码:
File file = new File("d:\\abc");
file.mkdir();//mkdir方法只创建一级目录
File file = new File("d:\\a\\b\\c\\d\\e\\f");
file.mkdirs();
4.File相关方法
5.遍历文件夹
示例代码:
public class TestFile5 {
public static void main(String[] args) {
//如何遍历文件夹
File file = new File("d:\\tool");
//通过listFiles返回数组接收文件内容
File[] files = file.listFiles();
for (File f : files) {
if(f.isDirectory()) {
File[] files2 = f.listFiles();
for (File f2 : files2) {
System.out.println(f2.getName());
}
}
}
}
}
6.递归遍历文件夹
如果遍历一个文件夹,但是文件夹中还有文件夹时,比较麻烦
如果删除一个文件夹,但是文件夹中还有其他内容时,也比较麻烦
递归指的是方法调用自身,但是如果没有结束条件,会出现栈内存溢出
//如何遍历一个文件夹下的所有文件
//如何删除文件夹以及文件夹中的所有文件
定义工具类
如何定义工具类???
-
1)构造方法私有化,为了不让在外界创建对象
-
2)所有方法都是静态方法,可以用类名直接调用
遍历显示和遍历删除文件夹内容
示例代码:
public class FileUtils {
private FileUtils(){}
//显示一个文件夹下的所有文件
public static void showFiles(File file){
if(file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
System.out.println(f.getName());
showFiles(f);
}
}
}
//如何删除文件
public static void deleteFiles(File file){
//如果是文件可以直接删除
if(file.isFile()) {
file.delete();
} else {//如果不是文件,即文件夹,遍历并删除文件夹中的文件
File[] files = file.listFiles();
for (File f : files) {
deleteFiles(f);
}
}
//删除空的文件夹
file.delete();
}
}
7.文件过滤器(附加内容)
Io流的File类就介绍这么多了,对File类的其他方法操作还不太熟练的小可爱们,可以查看帮助文档
记得点赞+关注👉:
github地址:https://juejin.im/post/5defc077518825127d107c3f