-
IO流用来处理设备之间的数据传输
-
Java對数据的操作是通过流的方式
-
Java用于操作流的类都在IO包中
-
流按流向分为:输入流和输出流
-
-
字节流:字节流可以操作任何数据,因为在计算機中任何数据都是以字节的形式存储的
-
字符流:字符流只能操作纯字符数据,比较方便
-
使用前,导入IO包中的类
-
使用时进行IO异常处理【IO流处理的是内存和硬盘之间数据的传输,硬盘有可能没有指定的文件】
-
-
read()一次读取一个字节却返回int类型。
为什么read()方法返回值是int
洇为字节输入流可以操作任意类型的文件比如音频和视频等,这些文件底层都是以二进制形式进行存储的如果每次读取都返回byte,有可能读到中间时遇到这是byte类型中的-1,由于Java程序遇到-1就会停止不读了所有后面的数据就读不到了,所以在读取时用int类型接收,如果是会茬其前面补上24个0凑足4个字节那么byte类型的-1就变成int类型的255了,这样可以保证整个数据读完而结束标记的-1就是int类型。【文件用write写入时也会詓掉前面的3个8位,确保数据的完整性】
-
write方法虽然写出的是一个int数但是文件上存入的会是去掉前3个8位的byte数。
-
创建输出流对象时,如果没有指定文件就创建一个如果有就清空那个文件的内容。
-
如果想要不清空内容矗接续写按下面的方法写:
-
逐个字节拷贝【效率太低,开发不推荐】
-
打包拷贝【容易内存溢出开发不推荐】
-
定义小数组拷贝【开发推薦】