什么是IO:(Input/Output):输入和输出.
IO设备: 和电脑通信的设备.
输入设备:麦克风,扫描器,键盘,鼠标等.
输出设备:显示器,打印机,投影仪,耳机,音响等.
为什么程序需要IO呢?
案例1:打游戏操作,得分比较高,存储游戏的信息(XXX-888分).
此时需要把游戏中的数据存储起来,只能存储在文件中.
案例2:打游戏操作,查看游戏英雄榜, 英雄榜的数据存储在一个文件中的.
此时游戏程序需要去读取文件中的数据,并显示在游戏中.
案例3:上传和下载操作.
**IO操作是一个相对的过程,一般的,我们在程序角度来思考(程序的内存).
程序需要数据: 把数据流入到程序中,输入.
程序需要保存数据,把数据传递给别人: 输出.**
IO流的分类和操作模板:
IO流的分类,站在不同的角度,分类方式是不一样滴:
1):根据流向划分: 输入流和输出流.
2):根据数据的单位划分: 字节流和字符流.
3):根据功能的划分:节点流和包装流.
四大基流:(字节输出流,字节输入流,字符输出流,字符输入流)
四大基流都是抽象类: 其他流都是继承于这四大基流的.
我们不能创建四大基流的对象,只能创建其子类对象.
无论是什么流,都有close方法,用来关闭资源.
如果操作文件,就得开通一个流对象关联我们得磁盘文件,如果不关闭资源,那么磁盘的文件一直被程序所引用着,不能删除,也不能更改.
操作IO流的模板:
1):创建源或者目标对象(挖井).
拿文件流举例:
输入操作: 把文件中的数据流向到程序中,此时文件是源,程序是目标.
输出操作: 把程序中的数据流向到文件中,此时文件是目标,程序是源.
2):创建IO流对象(水管).
输入操作: 创建输入流对象.
输出操作: 创建输出流对象.
3):具体的IO操作.
输入操作: 输入流对象的read方法.
输出操作: 输出流对象的write方法.
4):关闭资源(勿忘). 一旦资源关闭之后,就不能使用流对象了,否则报错.
输入操作: 输入流对象.close();
输出操作: 输出流对象.close().
操作IO流的六字箴言:
读进来,写出去.
读进来: 进来强调了是输入, 读说明是read方法.
写出去: 出去强调了是输出,写说明是write方法.
代码练习:
package IO;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;public class InputStreamPractice {public static void main(String[] args) throws Exception {//文件可以帮我创建但是目录不能够帮我们创建,点解file文件夹refresh刷新file文件夹File file = new File("file/stream.txt");//如果文件不存在会自动创建刷新项目文件可以看见出现该文件了//获取FileOutputStream文件输出流对象,false表示不追加,true向文件中追加内容OutputStream out = new FileOutputStream(file,false);//在write方法中传入的参数为int或者是Byte如果传入的是int常量为65则转为Aout.write("hello java!".getBytes());
/* write(int b);把一个字节写出到文件中write(byte[] b, int off, int len);从b数组中的第off位置开始向文件中写入len位数字*/out.close();}
}