关于java中流的知识的整理

流的概念:



 

举个简单的例子:

public static void main(String[] args) throws IOException {

        // 节点流FileOutputStream直接以A.txt作为数据源操作

        FileOutputStream fileOutputStream = new FileOutputStream("A.txt");

        // 过滤流BufferedOutputStream进一步装饰节点流,提供缓冲写

        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(

                fileOutputStream);

        // 过滤流DataOutputStream进一步装饰过滤流,使其提供基本数据类型的写

        DataOutputStream out = new DataOutputStream(bufferedOutputStream);

        out.writeInt(3);

        out.writeBoolean(true);

        out.flush();

        out.close();

        // 此处输入节点流,过滤流正好跟上边输出对应,读者可举一反三

        DataInputStream in = new DataInputStream(new BufferedInputStream(

                new FileInputStream("A.txt")));

        System.out.println(in.readInt());

        System.out.println(in.readBoolean());

        in.close();

}













常见流类介绍:

节点流类型常见的有:

对文件操作的字符流有FileReader/FileWriter,字节流有FileInputStream/FileOutputStream

处理流类型常见的有:

缓冲流:缓冲流要套接在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写效率,同事增加了一些新的方法。

  字节缓冲流有BufferedInputStream/BufferedOutputStream,字符缓冲流有BufferedReader/BufferedWriter,字符缓冲流分别提供了读取和写入一行的方法ReadLineNewLine方法。

  对于输出地缓冲流,写出的数据,会先写入到内存中,再使用flush方法将内存中的数据刷到硬盘。所以,在使用字符缓冲流的时候,一定要先flush,然后再close,避免数据丢失。

转换流:用于字节数据到字符数据之间的转换。

  仅有字符流InputStreamReader/OutputStreamWriter。其中,InputStreamReader需要与InputStream“套接OutputStreamWriter需要与OutputStream“套接

数据流:提供了读写Java中的基本数据类型的功能。

  DataInputStreamDataOutputStream分别继承自InputStreamOutputStream,需要套接InputStreamOutputStream类型的节点流之上。

对象流:用于直接将对象写入写出。

  流类有ObjectInputStreamObjectOutputStream,本身这两个方法没什么,但是其要写出的对象有要求,该对象必须实现Serializable接口,来声明其是可以序列化的。否则,不能用对象流读写。

  还有一个关键字比较重要,transient,由于修饰实现了Serializable接口的类内的属性,被该修饰符修饰的属性,在以对象流的方式输出的时候,该字段会被忽略。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值