java i o是什么意思_“流”和“缓冲区”究竟在Java I / O中意味着什么?

缓冲:

它是物理内存存储区域,用于在数据从一个位置移动到另一个位置时临时存储数据。 在大多数情况下,物理内存存储将是RAM(随机存取存储器)。

但是从这个问题的上下文中,在读/写数据时使用了Buffer。 将数据从一个地方移动到另一个地方时不需要使用它。

缓冲区示例:如果您的系统有4 GB RAM,则系统可以为缓冲区分配4 KB内存(RAM)。 KB - Kilobyte(s),GB - Gigabyte(s)

I / O流(或)流:

I / O Stream表示输入源或输出目标。 一条小溪   可以代表许多不同类型的来源和目的地,   包括磁盘文件,设备,其他程序和内存阵列。

I / O表示输入/输出。

因此,输入流可以是磁盘文件,网络连接等输入源。

并且,输出流可以是输出目的地,如磁盘文件,网络连接等。

根据JAVA官方文档,Streams有3种类型。

字节流(读取或写入字节)

字符流(读或写字符)

缓冲流(从缓冲区读取或写入,以提高效率)

字节流:

它们执行8位字节的输入和输出。 所有字节流类   是来自InputStream和OutputStream的后代。

字节输入流类获取输入作为原始字节。字节输出流类将输出作为原始字节。

BufferedReader - 直接已知子类

AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream.

BufferedReader - 直接已知子类

ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream, OutputStream, PipedOutputStream

角色流:它们是Byte Streams之上的一层。 它们使用字符编码将字节(二进制数据)转换为字符,将字符转换为字节。

所有字符流类都来自Reader和Writer。

BufferedReader - 直接已知子类

BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader

BufferedReader - 直接已知子类

BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter

Byte Streams& Character Streams使用无缓冲的I / O.

这意味着处理每个读或写请求   直接由底层操作系统。 这可以使程序更少   高效,因为每个这样的请求经常触发磁盘访问,网络   活动,或其他相对昂贵的操作。   为了减少这种开销,Java平台实现了缓冲   I / O流。

缓冲流:

缓冲输入流从称为缓冲区的存储区读取数据;   仅当缓冲区为空时才调用本机输入API。

类似地,缓冲输出流将数据写入缓冲区,并且   仅在缓冲区已满时才调用本机输出API。

程序可以将无缓冲的流转换为缓冲流使用包装习惯用法,将无缓冲的流对象传递给缓冲流类的构造函数。

例:

inputStream = new BufferedReader(new FileReader("xanadu.txt"));

outputStream = new BufferedWriter(new FileWriter("characteroutput.txt"));

有4个缓冲流类用于包装无缓冲的流:

要创建缓冲的字节流,请使用BufferedReader和BufferedWriter类。

要创建缓冲字符流,请使用BufferedReader和BufferedWriter类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值