一郎科技|java:IO流
一:IO流的分类1)按流向分:
输入流:读取数据 , 把持久设备的数据读取到内存中 。
输出流:写出数据 , 把内存的数据写出到持久设备 。
2)按数据类型分:
计算机中一切数据都是:字节数据 。
字符数据:底层还是字节数据 , 但是可以根据某些规则 , 把字节变成人们认识的文字、符号等等 。
字节流:数据在持久设备上都是以二进制形式保存的 。 二进制就是字节数据 。 java就给出了字节流可以直接操作字节数据 。
字节输入流:InputStream
子类:FileInputStream
字节输出流:OutputStream
子类:FileOutputStream
字符流:读取字符数据 。 数据在设备上是以二进制形式表示 , 但是有些二进制合并在一起可以表示一些字符数据 。
字符输入流:Reader
子类:FileReader
字符输出流:Writer
子类:FileWriter
注意:
1)字节流可以对任意类型的文件按照字节进行读和写的操作;例如:图片、视频、文本文件、word文档、mp3等 。
2)字符流只能对文本类型的文件进行操作;例如:.java文件、.txt等文件 。
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方法 , 当完成流的操作时 , 必须调用此方法 , 释放系统资源 。
publicintread():调用一次读取一个字符 , 返回字符的编码值 。 即读取的内容存放到返回值中 。 如果读取到文件末尾返回-1;
publicintread(char[]chs):调用一次读取多个字符 , 把这些字符保存在chs中 , 返回给字符数组中存储的字符个数 , 如果读取到文件末尾返回-1;
注意:虽然读取了一个字符 , 但是会自动提升为int类型 。
2)字符输出流Writer
publicabstractvoidclose():关闭此输出流并释放与此流相关联的任何系统资源 。
publicabstractvoidflush():刷新此输出流并强制任何缓冲的输出字符被写出 。
publicvoidwrite(intb):写出一个字符 。
publicvoidwrite(char[]chs):将字符从指定的字符数组写出此输出流 。
publicabstractvoidwrite(char[]b,intoff,intlen):从指定的字符数组写出len字符 , 从偏移量off开始输出到此输出流 。
推荐阅读
- 小红猪带你看科技|七夕节送女朋友必备左点小艾智能艾灸器X8,3天众筹500万
- 浪浪科技精选|超频三GI-CX240 ARGB水冷,极致性能冷酷到底
- ITheat热点科技|可搭载高规格显卡,AMD将发布新移动端处理器:开放完整PCIe通道
- 爱因儿科技|入侵盖茨、马斯克、巴菲特等名人推特账号的黑客被抓了!最小的17岁
- 小米科技|小米正式官宣以旧换新,支持小米10系列等5款机型,你等到了吗?
- 小米科技|数亿米粉始料未及!小米2日正式宣布,网友:太良心了!
- 科技数码迷|刘作虎终于拿起了屠刀,一加氢OS彻底与过去说再见
- 一点科技范|你更pick谁?,下半年最受期待的三大系列手机
- 科技章鱼烧|更换硬盘只需动动小手,装载系统和软件交给DiscWizard
- 科技小蠕虫|又一国家绕开华为,3大运营商核心网络不用华为,美国“围剿”下