流的概念:

字节流和字符流

都在Java.io包下


OutputStream 字节输出流
FileOutputStream extends OutputStream(文件字节输出流)
作用:把内存中的数据写入到硬盘的文件中

字节流的原理:
Java程序-->JVM(Java虚拟机)-->os(操作系统)-->os调用写数据的方法-->把数据写入到文件中

字节数出流的使用步骤,重点

异常使用父类异常即可,因为FileOutputStream的异常是write的异常(IO)的子类
文件存储的原理和记事本打开文件的原理

一次写多个字节的方法

因为太麻烦所以。。。。


注意字节的正负


在UTF-8中三个字节为一个汉字,在GBK中两个字节为一个汉字
字节输出流的续写和换行


追加写的代码示范


换行写,不同操作系统换行符号不一样
字节输入流:InputStream 最顶级的父类

以FileInputStream 为例



记得释放流,fis.close();当返回-1是说明读取完毕

代码循环优化也可以在sout语句中len强转为char类型,结果为abc


不可以将循环写成这样,因为每次.read指针都会后移一位,所以会跳过ac
字节输入流读取数据的原理

字节输入流一次读取多个字节


原理

多次读取后显示的结果原理


练习:文件的复制



注意释放流的顺序,先关写的(输出)再关读的(读取)

上面的读取效率低,优化以后
测试程序运行的时间的方法

在程序开始

在程序结束的时候
只要是文件,我们使用字节流都可以复制!!!!!