个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主
特别标注:仅为自己的学习记录笔记,方便复习和加深记忆,仅供借鉴参考!
目录
IO流概述
IO流分类
按数据的流向
按数据类型
字符流
字节流
字节流写数据
字节流抽象基类
字节流写入数据的3种方式
实现数据的换行
实现数据的追加写入
IO流概述
IO:输入/输出(Input/Output)。
流:是一种抽象概念,是对数据传输的总称,数据在设备间的传输称为流。
IO流:用来处理设备间数据传输的问题
IO流分类
按数据的流向
输入流:读数据
输出流:写数据
按数据类型
字节流
字节输入流;字节输出流
字符流
字符输入流;字符输出流
如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流,如果不知道该使用哪种类型的流,就使用字节流
字节流
字节流写数据
字节流抽象基类
InputStream:表示字节输入流的所有类的超类
OutputStream:表示字节输出流的所有类的超类
FileOutputStream(String name):创建文件输出流以指定的名称写入文件中
举例
package IO;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("fos.txt",true);
fos.write("hello,IO\n".getBytes());
fos.close();
}
}
为什么一定要close()呢?
1.让流对象变成垃圾,这样就可以被垃圾回收器回收了
2.通知系统去释放跟该文件相关的资源
执行结果
字节流写入数据的3种方式
1. public void write(int b):写一个字节
2.public void write(byte[] b):写一个字节数组
3.public void write(byte[] b,int off,int len):写一个字节数组的一部分
举例
代码
package IO;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("fos2.txt",true);
fos.write(97);
byte[] bys={97,98,99,100,101};
fos.write(bys);
fos.write(bys, 2, 3);
fos.close();
}
}
执行结果
实现数据的换行
不同的系统针对不同的换行符号识别是不一样的:
indows:\r\n
linux:\n
Mac:\r
实现数据的追加写入
用构造方法带第二个参数是true的情况即可
举例
代码
package IO;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("fos3.txt",true);
for (int i = 0; i < 10; i++) {
byte[] bys="hello world".getBytes();
fos.write(bys);
fos.write("\r\n".getBytes());
}
fos.close();
}
}
运行结果
各位学习java的朋友可以联系我,互相讨论,一起进步!!!
👍+✏️+⭐️是对博主最大的鼓励与支持!!!