JavaSE01_Day02(下)-File类
一、面试题作业讲解
答案:true true
第一个输出结果解析: Integer包装类底层有一个缓存机制,目的是减少内存开销,Integer这个包装类中有一个字节的缓存,如果说值在[-128~127]之间,就直接使用缓存中的数据;如果说值不在这个范围内,则以对象的形式返回,所以最终在使用==进行比较两个引用变量首地址的值是否相等时,如果值在 [-128~127]范围内返回true,反之返回false。
第二个输出结果解析: Integer包装类中已经重写了超类Object中的equals方法,所以当两个变量i1和i2的值一样时,返回值为true。
二、File类
File类是用于表示硬盘中的文件或者目录的一个类,这个类可以提供访问文件或者目录的基本信息,以及可以进行访问一个目录的子项,可以进行操作文件或者目录,但是需要注意不能对文件中的数据进行访问操作。
使用File可以做到:
-
访问其表示的文件或目录的属性:名字、大小、修改时间等。
-
操作文件或目录(创建或删除)
-
访问一个目录中的所有子项
-
但是不能访问文件数据
2.1 使用File类获取文件信息
package cn.tedu.file;
import java.io.File;
import java.io.IOException;
/**
* 使用File类获取文件信息案例
* @author cjn
*
*/
public class FileDescDemo01 {
public static void main(String[] args) throws IOException {
/*
* 路径分类:
* 1.相对路径:以一个事物进行参照,相对而言的路径,
* 优点:可以让项目中有关于路径访问的操作移植性更好,
* 如果在不同的操作系统,或者相同操作系统的不同电脑,
* 都可以找到对应位置下的资源,./表示当前项目位置。
*
* 2.绝对路径:就是一个完全限定的路径,也就是一个文件或者文件夹。
* 在电脑中磁盘的具体位置,弊端是使用绝对路径移植性较差,如果
* 是不同的操作系统,或者相同操作系统的不同电脑,查找资源容易找不到。
*
* 注意:路径表示的时候写/或者\都可以,如果是使用的/,则不需要使用转义字符进行转义就可以识别
* 如果是使用\,则需要使用转义字符\进行识别路径中的\。
*/
//()中指定文件或目录路径(实际上表示的是一个抽象路径)
File file = new File("./file/test.txt");
System.out.println(file);
/*
* 查看文件的绝对路径
* getAbsolutePath:该方法不会对路径中的./或者../进行解析
* getCanonicalPath:该方法会对路径中的./或者../进行解析
*/
System.out.println(file.getCanonicalPath());
System.out.println(file.getAbsolutePath());
System.out.println("-----下面是调用API查看文件信息------");
//查看文件的名称
String name = file.getName();
System.out.println("文件名称:"+name);
//查看文件是否是隐藏文件
boolean isHidden = file.isHidden();
System.out.println("文件是否隐藏:"+isHidden);
//查看文件的状态(可读可写)
boolean canRead = file.canRead();
System.out.println("文件是否可读:"+canRead);
boolean canWrite = file.canWrite();
System.out.println("文件是否可写:"+canWrite);