32 文件IO流(一)

32 文件IO流(一)

1.解决了什么样子的问题

如果你想在网页上显示节日快乐信息,你每定义一次就打印一次会很麻烦,所以文件IO流的产生使得改信息只需要改里面的文件即可

2.File文件

2.1核心

​ 实例化的对象可以用来指代文件与文件夹

2.2 路径(文件所在地址)

​ A.相对路径()

​ 相对路径指的相对于给定的目录的路径

​ 如:day01/abc.txt

​ B.绝对路径(带根盘符的)

​ 如:C:\Users\我的天空\Desktop

​ 具体如何书写等有时间再去自己研究,现阶段够用了

3.重写Object类的常用方法(clone未重写)

3.1 File类中的toString方法

public String toString() {
        return getPath();
    }
//返回的是提供构造方法初始化的地址    

3.2 File中的equals方法(public boolean equals(Object obj))

调用equals方法判断两个对象是否相等,都先要判断是否为调用者的对象的实例化子类,若是则调用compareTo方法(必须实现Comparable接口)

//若是子类,且地址一样,必然返回true,否则(不为零的数字==0)必然返回false,
//equals源码如下:
 public boolean equals(Object obj) {
        if ((obj != null) && (obj instanceof File)) {
            return compareTo((File)obj) == 0;
        }
        return false;
    }
 //Compare two abstract pathnames lexicographically
按字典顺序比较两个抽象路径名(compareTo方法调用compare方法的解释)
//字典顺序是从每个字符串的首字母进行英文字母表顺序的比较,
//如果第一个字符串的首字母在英文字母表中顺序靠前,则返回次序的差值(负数)
//如果第一个字符串的首字母在英文字母表中顺序靠后,则返回次序的差值(正数),
//若一样则继续往下比,如果全部一样则是返回0
//如:  "abc"   "add"
   //方法调用者为"abc",实参值为"add",则返回值为(b的字母表顺序-d的字母表顺序=-2)
  //方法调用者为"add",实参值为"add",则返回值为(0,所有字母都相等)
  //方法调用者为"add",实参值为"abc",则返回值为(d的字母表顺序-b的字母表顺序=2)
 String str="abc";
 String str01="add";
 System.out.println(str.compareTo(str01));
 System.out.println(str01.compareTo(str01));
 System.out.println(str01.compareTo(str));

4.常用操作

判断File对象是否存在

System.out.println(file.exists());

4.2 判断File对象是否是文件(标准文件)

System.out.println(file.isFile());
//文件与文件夹不是一个东西,文件夹指的的目录

4.3 判断File对象是否是文件夹 (即目录)

System.out.println(file.isDirectory());

4.4 判断File对象是否是绝对路径

System.out.println(file.isAbsolute());

4.5 创建文件

System.out.println(file.createNewFile());
//createNewFile只能创建文件    

4.6 创建目录--->创建父文件存在的文件夹

System.out.println(file.mkdir());

4.7 创建目录----->创建文件夹,若路径文件夹不存在,则自动创建父类文件夹

System.out.println(file.mkdirs()); 

4.8 获取文件名

System.out.println(file.getName());

4.9 获取父文件名

System.out.println(file.getParent());

4.10 文件长度

System.out.println(file.length());        

4.11 剪切

 file.renameTo(new File("abc.txt"));
 //把文件移动到指定位置

4.12 获取该文件目录下面的所有文件与文件夹(返回值为String[])

//list方法只针对于文件夹,返回值为String类型的数组

若File对象是文件,则返回null,空指针是不能够调用方法的

String[] lists = file.list();
for (String list : lists) {
    System.out.println(list);
}
//仅仅会出现所有文件以及文件夹的名字(无前面的地址信息)

4.13 获取该文件目录下面的所有文件与文件夹(返回值为File[])

//listFiles只对于文件夹,返回值为File[],(除开打印文件名外,还可以做一系列操作)

若File对象是文件,则返回null,(空指针是不能够调用方法的)

File[] files = file.listFiles();
for (File file1:files){
   System.out.println(file1.getName());
}
//会出现所有文件的绝对路径(若想只有文件名,如上面所示调用getName()方法)

4.14 得到初始化时赋值的地址信息

 System.out.println(file1.getPath());
posted @ 2020-12-10 14:55  SSS翱翔万里  阅读(172)  评论(0编辑  收藏  举报