我读过很多提到数据流的书籍和文章,我主要在Java中使用数据流,但没有一本真正提到数据流到底是什么。它是在内存中连续对齐为字节的数据吗?奖励问题:插座呢?它在内存中是如何准确表示的,它如何连接到硬件输入/输出?
Java 流是一种抽象:只是你可以读取或写入的东西。它通常由外部资源(如文件或套接字)提供支持。有关每个流的血腥详细信息,并且有数十个,请参阅源代码。唯一真正符合您的描述"内存地址序列"的两个流是ByteArrayInputStream
和ByteArrayOutputStream.
套接字是通信的终结点。在内部,它是内核中的数据结构,它"连接"到网络协议栈,而网络协议栈又连接到一个或多个网络接口卡(NIC)。