Think in Java IO流的 字节流部分

来源:互联网 发布:网络音乐产业发展现状 编辑:程序博客网 时间:2024/05/29 02:18

字节流

字节输出流-InputStream-抽象类-抽象方法-read()-与具体的IO相关?


-子类-文件字节输入流(作用:读取文件,将文件转换为字节流)

字节输入流-OutputStream-抽象类
-子类-文件字节输出流(将字节流转换为存放在文件中)
-字节数组输出流(将字节流转换为字节数组)


BufferedOutputStream-过滤流
对流数据进行封装,减少IO的耗费
如向文件中写入字节,如不包装,每一次都是一个个字节的向文件中
写入,而BufferedOutputStream是将一定量的字节放在缓冲区后,再将缓冲区的所有字节写入文件

 

文件—(节点流)—》过滤流——》过滤流——》程序


节点流:字节与目标交互的
上面是:从文件中读取数据的,目标是文件
下面是:将将程序中的数据写入文件中,目标是程序

文件《——过滤流《——过滤流—(节点流)—程序





import
java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;public class ByteStream { public static void main(String[] args) throws Exception { // OutputStream(所有字节输出流的父类) /** * FileOutputStream 继承并重写了OutputStream的抽象方法(系统已经重写了) * * 过程: 通过关联想写入数据的文件建立 文件输出流 建立想写入文件的数据:一般是字节数组的形式,可以通过字符串进行转换得到 * 循环遍历字节数组,将每一个字节写到文件中(注意这是一个很耗费IO的操作,过滤流可以对此进行改善) 循环结束 关闭流 */ OutputStream outputStream = new FileOutputStream("test.txt"); byte[] bytes = "test.baidu.com".getBytes();// 这边可以遍历输出bytes数组中的内容,发现每一个元素并不是 // 字符 t e s t 之类的,而是 // 每一个字符对应的ASCII // 十进制数,因为字符存放在的是字节数组 outputStream.write(bytes);// 将数组中的元素存放在文件中 outputStream.write(104);// 结果是 e 因为十进制104在ASCII中表示的字符 e // ;e在屏幕上和文件中显示的虽然是字符的形式,但是在文件中存储的时候是以数字的形式 */ outputStream.write(bytes, 2, 4);// 结果是st.b 表明 将bytes数组中 // bytes[2]开始(也就是数组第三个开始),包括第三个总共读取四个字节到文件中 /** * FileInputStream(所有字节流输入流的父类) * * 继承关系 建立输入流 while循环 条件是什么? - 读出 --1 读取文件中每一个字节,然后将其输出 --2 * 一次读取多个字节,然后存放在字符串数组中,并且将字节数组以字符串的形式显示 关闭 * */ InputStream inputStream = new FileInputStream("test.txt"); /** * 1 读取文件中每一个字节,然后将其输出 */ int c; while (-1 != (c = inputStream.read())) { System.out.println((char) c); } /** * --2 一次读取多个字节,然后存放在字符串数组中 */ byte[] bytes1 = new byte[200]; int c1 = 0; // 一次读取多个字节,然后存放在字符串数组 /** * 将字节数组以字符串的形式显示,取出多长,就产生多长的字符串 * 参数bytes:存放字节的数组,0,c:字节数组的起始地址;即这一次读取从文件中读取了c个 */ while(-1!=(c=inputStream.read(bytes,0,5))){ String str = new String(bytes1, 0, c1); System.out.println(str); } inputStream.close(); }}

 

0 0
原创粉丝点击