一、原理
存储机制:硬盘、内存、缓存
硬盘:大容量的存储机制(长期存储的文件),文件数据
内存:运行中的程序的数据
缓存(闪存):屏幕中看到的数据
程序运行过程:
运行程序:把当前程序的相关文件数据加载的内存中
程序结束:把当前内存的程序数据清楚掉
*注意:硬盘 ——内存——硬盘
二、流的机制
[一]、IO从两个方面来定义:
1.硬件方面:I/O(input,output),即输入\输出。
2.软件方面:I/O即不同存储机制上的数据的读入写出。
1.I/O流专门用于软件开发层面的理解,把数据从一个存储介质写出(output)或者读取(input)到另外一个存储介质的过程表示为I/O流的模型
2、定义:流是指一定的介质按照一定方向流动的行为,在软件开发中指的是存储的数据流动过程,这个数据源可以是文件、内存或者是网络某个URL。
3、概念:
字节和字符的区别:
【1】字节(byte)是计算机中储存的最小单位(bit是计 算机中运算最小的单位)
【2】字符 1个英文 = 1个byte 1个中文 = 2个byte
字节流:读取和写入数据的时候,以字节为最小单元进行读取和写入操作
字符流:读取和写入数据的时候,以字符为最小单元进行读取和写入操作,因为每个字符根据编码不 同,所占用的字节个数不同,每次读取和写入字符时候,是不定长的字节个数写入读取。
根据传输介质:字节和字符
根据传输方向:输入和输出
在计算机上输出设备有:显示屏、音响、打印机等等。。。。。
输入设备有:键盘、鼠标等等。。。。。
【1】要出硬盘把数据引入到内存:输入流
【2】要从内存把数据传入到硬盘:输出流
5.注意四大抽象类:InputStream、OutputStream、Read、writer
6.入门流(文件字节输入输出流):FileInputStream、FileOutputStream
7.【1】如何把字节数组转化为字符串:
字节的输入:read(int) 、read(byte[])
String str = new String(bytes,0,v);
【2】如何把字符串转化为字节数组:字节的输出:writer(int)、writer(byte[])
byte[] bytes = str.getBytes();
【3】如何把字符串转为字符数组:
Char [] chars = Str.toCharArray();
字符输入:read(int)、read(char[])
字符输出:writer(int)、writer(char[])
8.注意:文件输入流的关联文件必须在电脑中存在
文件输出流的关联文件电脑可以不存在(路径必须存在)