ToB企服应用市场:ToB评测及商务社交产业平台

标题: IO [打印本页]

作者: 傲渊山岳    时间: 2024-5-15 15:54
标题: IO
IO

所有输入流的基类:InputStream / Reader 所有输出流的基类:OutputStream / Writer
字节省

InputStream常用方法:read(), skip(), available(), close()
OutputStream常用方法:write(), flush(), close()
常用字符编码所占字节数?utf8 :英文占 1 字节,中文占 3 字节,unicode:任何字符都占 2 个字节,gbk:英文占 1 字节,中文占 2 字节。
字符流

Reader(字符输入流)

Reader 用于读取文本, InputStream 用于读取原始字节。
Reader 常用方法:read(), skip(), close()
字节省转换为字符流的桥梁:InputStreamReader
  1. // 字节流转换为字符流的桥梁
  2. public class InputStreamReader extends Reader {
  3. }
  4. // 用于读取字符文件
  5. public class FileReader extends InputStreamReader {
  6. }
复制代码
Writer(字符输出流)

Writer用于将数据(字符信息)写入到目的地(通常是文件)
Writer 常用方法:write(), append(), flush(), close()
字符流转换为字节省的桥梁:OutputStreamWriter
  1. // 字符流转换为字节流的桥梁
  2. public class OutputStreamWriter extends Writer {
  3. }
  4. // 用于写入字符到文件
  5. public class FileWriter extends OutputStreamWriter {
  6. }
复制代码
字节缓冲流

 BufferedInputStream

 BufferedOutputStream

字节缓冲流会先将读取到的字节存放在缓存区,大幅减少 IO 次数,提高读取服从。
字符缓冲流

BufferedReader
BufferedWriter
打印流

PrintStream
PrintWriter
IO模型

BIO (Blocking I/O)同步阻塞IO模型

应用步伐发起 read 调用后,会不绝阻塞,直到内核把数据拷贝到用户空间。
NIO (Non-blocking/New I/O)

Java NIO 核心知识总结 | JavaGuide
同步非阻塞 IO 模型:应用步伐会不绝发起 read 调用,等待数据从内核空间拷贝到用户空间的这段时间里,线程依然是阻塞的,直到在内核把数据拷贝到用户空间。(通过轮询操纵,克制了不绝阻塞。)
NIO核心组件:
NIO零拷贝:零拷贝是指计算机执行 IO 操纵时,CPU 不须要将数据从一个存储区域复制到另一个存储区域,从而可以减少上下文切换以及 CPU 的拷贝时间。
AIO (Asynchronous I/O)

异步 IO 模型:异步 IO 是基于事件和回调机制实现的,也就是应用操纵之后会直接返回,不会堵塞在那里,当后台处理完成,操纵系统会通知相应的线程举行后续的操纵。

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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4