一、IO流—基础 (附相对路径)
- 概念:
- 参照物:内存、程序
- Input: 输入 从硬盘到程序/ 读取Reader
- Output: 输出 从程序到硬盘/ Writer
流的派系 | 类型 | 注释 |
---|---|---|
java.io.InputStream | 字节输入流 | 抽象类,父类是Object,实现了Closeable |
java.io.OutputStream | 字节输出流 | 抽象类,父类是Object,实现了Closeable和Flushable接口 |
java.io.Reader | 字符输入流 | 抽象类,父类是Object,实现了Closeable |
java.io.Writer | 字符输出流 | 抽象类,父类是Object,实现了Closeable和Flushable接口 |
1.流的分类
输入输出分类
- 输入 InputStream 、Reader
- 输出 OutputStream 、Write
按照读写方式分类
- 字符(char):一次读取一个字符的数据,字符流只能操作纯文本,Reader、Writer结尾的都是字符流
- 字节(byte): 一次读取一个字节的数据,字节都是万能流,操作图片、文字、音频、视频,凡是 Stream结尾的都是 字节流
- 结论: 流都可以关闭,也可以刷新,因为输出流都实现了flushble接口,都可以调用flush()方法;程序员用完输出流之后先刷新flush()通道,将剩余的数强制全部写完,然后再关闭close()
2.流的使用步骤
a. 读取文件/ 输入文件
- 创建文件字节输入流对象FileInputStream
- 处理编译时异常
- 关闭输入流
- 读取数据 流对象. read(),一次读取一个字节,返回的是int类型的数据对应的ascll码;
- 输入 流对象. read(bytes);一次读取,如果文件中的数据够用,就按照bytes的长度读取,如果文件中的数据不够用,就将剩下的数据全部读取,返回的是每次读取到的新的数据的个数
b. 写入文件/输出
- 创建FileOutputStream 文件字节输入流对象
- 处理编译时异常
- 关闭输入流然后在写完刷新输出流
- 将程序中的数据写入到对应的硬盘中,输出流对象.write(数据对应的ascll码),一次写一个字节数据
二、相对路径
1. 绝对路径不用多说,就是文件对应电脑磁盘的位置,比如:
D:\\桌面\\日期\\第七周\\四十一天\\src\\斗罗大陆54.txt; // 注意这里是//转义字符
D:/桌面/日期/第七周/四十一天/src/斗罗大陆54.txt; // 或者将// 换成 \ 也可以
2. 相对路径
两种方式:
- 在idea中新建一个project ,相对路径就是从src开始的:
- 在idea中新建一个Module,相对路径就是从Module名开始的,比如新建一个codess模块,查找笔记.txt 文件 :
本文含有隐藏内容,请 开通VIP 后查看