首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java的InputStream和OutputStream对.NET流的好处

Java的InputStream和OutputStream对.NET流的好处
EN

Software Engineering用户
提问于 2019-08-08 19:08:32
回答 1查看 502关注 0票数 4

Java有一个独立的InputStreams和OutputStreams的概念。您的代码从InputStream读取并写入OutputStream。

.NET没有这种区别,相反,它有一个您的代码可以写入和读取的单流类,这取决于具体的实现。功能可以由CanRead和CanWrite属性决定。

我想知道一种方法比另一种方法是否有根本的好处?我能想到的就是:

  • 如果您同时阅读和编写一条流,代码可能会稍微简洁一些
  • 如果使用单独的输入和输出流类(这些类使用相同的底层流),则close方法可能特别混乱,甚至是危险的。
  • 独立的输入和输出流类使代码的意图更加清晰。

这些理由对我来说似乎都不是特别有说服力的。还有什么更有说服力的原因吗?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2019-08-08 21:10:44

在特定的情况下,你只能说一个比另一个好。10次中有9次,没有足够重要的差别来真正关注流的使用方向。

在某些情况下,底层流确实是双向的(我在看你的套接字,文件)。在Java中,您必须获得两个不同的流对象才能进行会话,而在.NET中,您只需要处理一个流对象。在幕后,Java套接字输入流只使用与输出流相同的操作系统对象。

这些都是实现细节。正如RobertHarvey在他的评论中指出的那样,.Net确实有用于底层流的单向适配器。

如果您曾经想过逆转管道,那么.Net实现的灵活性是非常方便的。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/395814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档