1 package day8.lesson3;
2
3 import java.io.FileNotFoundException; //是IOException的子类
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6
7 /*
8 3 IO流
9
10 3.1 IO流概述和分类
11
12 IO流介绍
13 IO:输入/输出(Input/Output)
14 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输
15 IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载
16
17 IO流的分类
18 按照数据的流向
19 输入流:读数据
20 输出流:写数据
21 按照数据类型来分
22 字节流
23 字节输入流
24 字节输出流
25 字符流
26 字符输入流
27 字符输出流
28
29 PS:一般来说,IO流的分类时按照数据类型来分的
30
31 IO流的使用场景
32 如果操作的是纯文本文件(记事本打开能看懂内容),优先使用字符流
33 如果操作的是图片、视频、音频等二进制文件(记事本打开看不懂内容),优先使用字节流
34 如果不确定文件类型,优先使用字节流,字节流是万能的流
35
36 3.2 字节流写数据
37
38 字节流抽象基类
39 InputStream:这个抽象类是表示字节输入流的所有类的超类
40 OutputStream:这个抽象类是表示字节输出流的所有类的超类
41 二者的子类名特点:子类名称都是以其父类名作为子类名的后缀
42
43 字节输出流
44 FileOutputStream类:文件输出流用于将数据写入文件
45 构造方法FileOutputStream(String name):创建文件输出流以指定的名称写入文件
46
47 使用字节输出流写数据的步骤
48 创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)
49 调用字节输出流对象的写数据方法
50 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)
51 */
52 public class FileOutputStreamDemo01 {
53 public static void main(String[] args) throws IOException {
54 FileOutputStream fos = new FileOutputStream("stage2\\src\\day8\\lesson3\\fos1.txt");
55 /*
56 1 调用系统功能创建了文件
57 2 创建字节输出流对象
58 3 让字节输出流对象指向文件
59 */
60
61 fos.write(97); //字符'a' ASCII
62 fos.write(57); // 字符'9'
63
64 fos.close();
65 /*
66 1 关闭此文件输出流
67 2 释放与此流相关联的任何系统资源
68 */
69 }
70 }