夜色难免黑凉,前行必有曙光
—— 24.6.4
一、I0流介绍以及输入输出以及流向的介绍
1.单词:
output:输出 Input:输入 write:写数据 read:读数据
2.IO流:
将一个设备上的数据传输到另外一个设备上,称之为IO流技术
3.为什么要学IO流?
之前学了一个集合以及数组,可以保存数据,但是这两个都是临时存储(代码运行完毕,集合和数组会从内存中消失,从而数据就不存在了),所以集合和数组达不到永久保存的目的,我们希望咱们的数据永久保存起来,所以我们就可以将数据保存到硬盘上,此时我们就可以随时想拿到硬盘上的数据就随时拿
而且我们将来传输数据,必然要用到输入,输出动作
二、IO流的流向 针对se阶段的IO
输出流:Output
内存 —> 硬盘 输出流:从内存出发,将数据写到硬盘上
输入流:Input
硬盘 —> 内存 输入流:将数据从硬盘上读到内存中
要是从电脑间进行数据传输,就是相对的,发数据的一方就是输出流,收数据的乙方就是输入流
三、IO流的分类
字节流
万能流、一切皆字节
分为:字节输出流和字节输入流
字节输出流:OutputStream 抽象类
字节输入流:InputStream 抽象类
字符流
专门操作文本文档
字符输出流:Writer 抽象类
字符输入流:Reader 抽象类
四、字节输出流
1.概述:
字节输出流,Outputstream 是一个抽象类
子类:Fileoutputstream
2.作用:往硬盘上写数据
3.构造:
Fileoutputstream(File file)
Fileoutputstream(String name)]
4.特点:
a.指定的文件如果没有,输出流会自动创建
b.每执行一次,默认都会创建一个新的文件,覆盖老文件
5.方法:
void write(int b) —> 一次写一个字节
void write(byte[] b) —> 一次写一个字节数组
void write(bytel] b, int off, int len) —> 一次写一个字节数组一部分
b:写的数组
off:从数组的哪个索引开始写
len:写多少个
void close() —> 关闭资源
字节流的续写追加:
Fileoutputstream(string name, boolean append)
append:true —> 续写追加,文件不覆盖
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo266FileOutputStream {
public static void main(String[] args) throws IOException {
method01();
method02();
method03();
method04();
method05();
}
// Fileoutputstream(String name)]
private static void method01() throws IOException{
// Fileoutputstream(File file) 每次执行新的文件都会覆盖老文件
FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
// void write(int b) —> 一次写一个字节
fos.write(97);
// void close() —> 关闭资源
fos.close();
}
private static void method02() throws IOException{
// void write(byte[] b) —> 一次写一个字节数组
FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
byte[] buf = {97,98,99,100,101,102,103,104,105};
fos.write(buf);
// void close() —> 关闭资源
fos.close();
}
private static void method03() throws IOException{
// void write(bytel] b, int off, int len) —> 一次写一个字节数组一部分
// b:写的数组
// off:从数组的哪个索引开始写
// len:写多少个
FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
byte[] buf = {97,98,99,100,101,102,103,104,105};
fos.write(buf,3,5);
fos.close();
}
private static void method04() throws IOException{
FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
byte[] bytes = "一切都会好的\n".getBytes();
fos.write(bytes);
fos.close();
}
private static void method05() throws IOException{
// Fileoutputstream(string name, boolean append)
// append:true —> 续写追加,文件不覆盖
FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt",true);
fos.write(" 我一直相信\n".getBytes());
fos.write(" 越来越好\n".getBytes());
fos.close();
}
}