一郎科技|java:IO流

一:IO流的分类1)按流向分:
输入流:读取数据 , 把持久设备的数据读取到内存中 。
输出流:写出数据 , 把内存的数据写出到持久设备 。
2)按数据类型分:
计算机中一切数据都是:字节数据 。
字符数据:底层还是字节数据 , 但是可以根据某些规则 , 把字节变成人们认识的文字、符号等等 。
字节流:数据在持久设备上都是以二进制形式保存的 。 二进制就是字节数据 。 java就给出了字节流可以直接操作字节数据 。
字节输入流:InputStream
子类:FileInputStream
字节输出流:OutputStream
子类:FileOutputStream
字符流:读取字符数据 。 数据在设备上是以二进制形式表示 , 但是有些二进制合并在一起可以表示一些字符数据 。
字符输入流:Reader
子类:FileReader
字符输出流:Writer
子类:FileWriter
注意:
1)字节流可以对任意类型的文件按照字节进行读和写的操作;例如:图片、视频、文本文件、word文档、mp3等 。
2)字符流只能对文本类型的文件进行操作;例如:.java文件、.txt等文件 。
publicvoidclose():关闭此输出流并释放与此流相关联的任何系统资源 。
publicvoidwrite(byte[]byte):把这个byte字节数组中的所有数据写到关联的设备中(设备包括文件、网络或者其他任何地方) 。
publicvoidwrite(byte[]b,intoff,intlen):把b字节中的数据从下标off位置开始往出写 , 共计写len个 。
publicabstractvoidwrite(intb):把这个b数据写到关联的设备中 。
注意:close方法 , 当完成流的操作时 , 必须调用此方法 , 释放系统资源 。
2)字节输入流InputStream
publicvoidclose():关闭此输入流并释放与此流相关联的任何系统资源 。
publicabstractintread():调用一次read , 就可以从关联的文件中读取一个字节数据 , 并返回这个字节数据 。 方法可以从关联的文件中读取数据 。 所有read方法如果读取到文件的末尾 , 都会返回-1 。 遇到-1就代表文件中的数据已经被读取完毕 。
publicintread(byte[]byte):调用一次 , 读取多个字节数据 , 把读到的字节数据保存在传递的byte字节数组中 。 返回字节数组中读取的字节个数 。 注意:这个返回值不是数组长度 。
【一郎科技|java:IO流】注意:close方法 , 当完成流的操作时 , 必须调用此方法 , 释放系统资源 。
publicvoidclose():关闭此流并释放与此流相关联的任何系统资源 。
publicintread():调用一次读取一个字符 , 返回字符的编码值 。 即读取的内容存放到返回值中 。 如果读取到文件末尾返回-1;
publicintread(char[]chs):调用一次读取多个字符 , 把这些字符保存在chs中 , 返回给字符数组中存储的字符个数 , 如果读取到文件末尾返回-1;
注意:虽然读取了一个字符 , 但是会自动提升为int类型 。
2)字符输出流Writer
publicabstractvoidclose():关闭此输出流并释放与此流相关联的任何系统资源 。
publicabstractvoidflush():刷新此输出流并强制任何缓冲的输出字符被写出 。
publicvoidwrite(intb):写出一个字符 。
publicvoidwrite(char[]chs):将字符从指定的字符数组写出此输出流 。
publicabstractvoidwrite(char[]b,intoff,intlen):从指定的字符数组写出len字符 , 从偏移量off开始输出到此输出流 。