欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第十八课:IO

程序员文章站 2022-03-08 11:52:26
...

File

File指文件类,可以用来表示文件或者目录
构造方法:
new File(String 文件路径)
new File(String 父路径,String子路径)
常用API:
getPath:获得文件与目录的绝对路径
listFiles():获得file对象中所用的文件
File file = new File(".");
具体效果如下图代码:
下面展示一些 内联代码片

// A code block
var foo = 'bar';
public void deleteFile(File file){
    File[] files= file.listFiles();
    if(files != null){//如果文件不为空
        for (File f:files//遍历文件中每一个文件
             ) {
            deleteFile(f);//对进入的新文件递归方法
        }
    }
    file.delete();//删除文件
}

mkdir():创建目录
mkdirs():创建目录,并将不存在的父目录一起创建
isFile():判断是否是文件
isDirectory:判断是否是目录

路径

绝对路径:window是从盘符开始的 C:\xx\xx…
Linux是 - /xx/xx (从根目录开始)
相对路径: 会有一个参照对象 a.txt
参考值: /Users/bonnie/Desktop 相对路径是: a.txt
那么a.txt的真实路径: /Users/bonnie/Desktop/a.txt
现在a.txt的真实路径:/Users/bonnie/IdeaWorks/corejava/API_day09/a.txt
那么现在的参考值: /Users/bonnie/IdeaWorks/corejava/API_day09
参考值 我们称之为 - 当前目录
参考值: C:\IdeaWorks\day09\src 相对路径: com/zzxx/demo01/a.txt
那么a.txt的真实路径: C:/IdeaWorks/day09/src/com/zzxx/demo01/a.txt

1.xx.class.getResource(“相对路径”) -> 得到一个绝对路径
2.xx.class.getClassLoader().getResource(“相对路径”) -> 得到一个绝对路径

注意:
类路径 classpath: 就是src编译后的目录, 也叫编译根目录
以上 1 和 2 代码得到的绝对路径, 都是在编译后的目录中, 和src没有直接关系
在开发中, 我们是先将文件放入src中的, 会自动编译到类路径中

IO流

以单位来分:字节流、字符流
以层级来分:底层流、包装流

字节流:InputStream/OutputStream
子类:FileInputStream/FileOutputStream
字符流:Reader/Writer

注意:
1.IO所有跟文件相关的流中, 构造方法中需要File作为参数的都可以使用文件路径直接取代
2.字节流写和读都是以字节为单位的, 单个字节能不能正常显示出来, 是不确定的

字节流API:
void write(int) : 写入这个int值得低八位
int read() : 读文件中一个字节, 并且存入int的低八位, 其余空位补0
当返回 -1 的时候, 说明文件读到了末尾