字节流 1: Outputstream 当流中的文件不存在时,系统默认会创建一个, Inputstream 当流中的文件不存在时,系统不会为其创建,直接抛出NotFileException异常. 2: 字节流直接操作字节,可以读写任意文本,视频,二进制文件,常应用于文件复制.但是他不可操作目录. 3: Outputstream,Inputstream, 字节流的父类,为抽象类 writer,reader 字符流的父类,为抽象类. 4: 用字节流写中文,存进文本中也是乱码,除非使用getBytes(),如果用了getBytes,当你往出取数据的时候 就乱码了,所以建议汉子还是用字符流. eg: FileOutputstream out = new FileOutputstream("a.txt"); out.write(97); //文本输出a ,这时因为当java虚拟机把数据分解为二进制写入文件中, 文件用的utf-8编码表将他转换为a,[其实理解为文本用utf-8解码的.] out.write('你'); //这时候虽然编码不报错,但是写进去的数据乱码. out.write("你好世界".getBytes()); //编码不报错,存进取也不乱码,唯一的缺点就是用输入流读出来的数据时乱码的. 用字节流读数据时,读出来的数据基本上是字节码. 5: 字节流的追加,构造方法 public FileOutputstream(String file , boolean append); 当 append 为 true 时就是在文件后面追加数据,否则就是覆盖数据. 6: 字符流可以根据平台上的默认字符集,将编码格式转换. 7: Properties 属性集 : 8: 字符流有一个默认的缓冲流,其大小为2kb, 9: 输出流后面没有设置追加的话,是会把原有的数据覆盖掉. 10: 其实字节流 和 字符流 底层都是二进制,只不过是字符流可以进行自动编码.而字节需要.
IO流注意事项:
最新推荐文章于 2023-07-16 17:32:36 发布