当前位置 > it书童 > java > 正文

java的IO流

java it书童 2020-12-02 12:27:05 0赞 0踩 713阅读 0评论

在Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述为“流”(stream),通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收(sink)的有序数据

数据从内存到硬盘,通常称为输出流——也就是说,这里的输入、输出都是从程序运行所在内存的角度来划分的

Java的输入流主要由InputStream和Reader作为基类,而输出流则主要由OutputStream和Writer作为基类。它们都是一些抽象基类,无法直接创建实例

字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同——字节流操作的数据单元是8位的字节,而字符流操作的数据单元是16位的字符

字节流主要由InputStream和OutputStream作为基类,而字符流则主要由Reader和Writer作为基类

Java的IO流的40多个类都是从如下4个抽象基类派生的:

  • InputStream/Reader:所有输入流的基类,前者是字节输入流,后者是字符输入流

  • OutputStream/Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流

Java的处理流模型体现了Java输入/输出流设计的灵活性:

  • 性能的提高:主要以增加缓冲的方式来提高输入/输出的效率

  • 操作的便捷:处理流可能提供了一系列便捷的方法来一次输入/输出大批量的内容

处理流可以“嫁接”在任何已存在的流的基础之上,这就允许Java应用程序采用相同的代码、透明的方式来访问不同的输入/输出设备的数据流

通过使用处理流,Java程序无须理会输入/输出节点是磁盘、网络还是其他的输入/输出设备,程序只要将这些节点流包装成处理流,就可以使用相同的输入/输出代码来读写不同的输入/输出设备的数据

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/923