IO流:IO用于在设备间进行数据传输的操作
IO流的分类:
注意:
(1)如果我们没有明确说明按照什么分,默认按照数据类型分。
(2)除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。
一、字节流
- 字节输入流InputStream基类
- 字节输出流0utputStream基类
1、字节输入流InputStream
字节输出流操作步骤:
- 创建字节输出流对象
- 调用write()方法
- 释放资源
示例:在文件中写入一行数据
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
// 创建字节输出流对象
FileOutputStream fos = new FileOutputStream("fos.txt");
/* 创建字节输出流对象了做了几件事情:
* A:调用系统功能去创建文件
* B:创建fos对象
* C:把fos对象指向这个文件
*/
//写数据
fos.write("hello,IO".getBytes());
fos.write("java".getBytes());
//释放资源
//关闭此文件输出流并释放与此流有关的所有系统资源。
fos.close();
//close:让流对象变成垃圾,通知系统去释放跟该文件相关的资源
}
}
案例1:字节流复制文本文件
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
// 封装数据源
FileInputStream fis = new FileInputStream("a.txt");
// 封装目的地
FileOutputStream fos = new FileOutputStream("b.txt");
int by = 0;
while ((by = fis.read()) != -1) {
fos.write(by);
}
// 释放资源(先关谁都行)
fos.close();
fis.close();
}
}
<