忿忿的泥巴坨 发表于 2025-6-2 05:27:06

java中IO流分为几种

Java中io流根据多个维度举行:有数据流的方向(输入大概输出)、处理惩罚的数据单位(字节大概字符)、流的功能以及流是否支持随机访问等;
按照数据流方向怎样分别?



[*]输⼊流(Input Stream):从源(如⽂件、⽹络等)读取数据到步伐。
[*]输出流(Output Stream):数据从步伐写出到目的地(如⽂件、⽹络、控制台等)。
按照数据单位怎样分别?



[*]字节流(Byte Stream):以字节为单位读写数据,主要用于处理惩罚二进制数据,如音频、图片文件等。
[*]字符流(Character Streams):以字符为单位读写数据,主要用于处理惩罚文本数据。
https://i-blog.csdnimg.cn/img_convert/f367108287baea39b0a45d36489d5a44.png
按功能怎样分别:



[*]节点流(Node Streams):直接与数据源大概目的地相连,如 FileInputStream、FileOutputStream。
[*]处理惩罚流(Processing Streams):对一个已经存在的流举行包装,如缓冲流 BufferedInputStream、BufferedOutputStream。
[*]管道流(Piped Streams):用于线程之间的数据传输,如 PipedInputStream、PipedOutputStream。
IO流用到了什么计划模式?

IO流体系用到另一个计划模式—装饰器模式。
https://i-blog.csdnimg.cn/img_convert/b6e2ea7b86fca1c9bab44c268d883057.png
Java缓冲区溢出,怎样预防
溢出主要是向缓冲区写入的数据超出缓冲区可以或许存储的数据量。有以下预防措施:

[*]**公道设置缓冲区的巨细:**创建缓冲区的时,根据实际的需求公道设置缓冲区的巨细。避免创建过大大概过小的缓冲区。
[*]**控制写入数据量:**在向缓冲区写⼊数据时,应该控制写⼊的数据量,确保不会超过缓冲区的容量。Java 的ByteBuffer 类提供了 remaining() ⽅法,可以获取缓冲区中剩余的可写⼊数据量。
https://i-blog.csdnimg.cn/direct/9ac7f648899d4114b096ac0f70e8bcaa.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: java中IO流分为几种