gpt4 book ai didi

java - 为什么 InputStream obj 不能直接嵌套到 BufferedReader obj 中?

转载 作者:行者123 更新时间:2023-11-29 04:00:31 26 4
gpt4 key购买 nike

OutputStream obj 可以直接连接到 PrintWriter obj,例如,

//either is OK
new PrintWriter(socket.getOutputStream());
new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
但是在InputStream obj的情况下,它必须通过InputStreamReader obj连接到BufferedReader obj,即,
new BufferedReader(new InputStreamReader(socket.getInputStream())); //OK
new BufferedReader(socket.getInputStream()); //doesnt work
API 设计的这种不一致有什么原因吗?

最佳答案

没有任何不一致...您应该比较 BufferedReaderBufferedWriter。它们的存在是为了分别包装其他 ReaderWriter

基本的原因是,不同类型的ReaderWriter可能有不同的初始化方式和不同的运行方式,不一定包装一个InputStreamOutputStream。在您的 BufferedReader 包装 InputStreamReader 的示例中,InputStreamReader 可以(通常应该)用 InputStream 初始化> 和一个 字符集。当 BufferedReader 的唯一工作是提供缓冲时,它是否应该为此重载?

关于java - 为什么 InputStream obj 不能直接嵌套到 BufferedReader obj 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com