Java 中网络细节内容有些超出了本 Java IO 基础的范畴。而 Java 网络相关的信息更多会在 Java网络教程 中探讨。但网络作为一个常见的数据来源以及数据流目的媒介,并且因为你使用 Java IO 的 API 通过网络连接进行通信,所以本文将简要的介绍 Java 网络的应用。

阅读文章的过程中如果有任何疑问,欢迎添加笔者为好友,拉您进【七日书摘】微信交流群,一起交流技术,一起打造高质量的职场技术交流圈子,抱团取暖,共同进步。
七日书摘官方群.jpg
一旦在两个进程之间建立了网络连接之后,它们就会像处理文件一样通过网络连接进行通信:使用 InputStream 读取数据,使用 OutputStream 写入数据。换言之,Java 网络 API 是用在不同进程之间建立网络连接时,而 Java IO 则是用在不同进程建立了连接之后的进程之间的数据交换。

基本上,这意味着如果你具有能够将某些内容写入文件的代码,那么你可以很容易的将这些内容写入到网络连接中去。而你所需要做的仅仅只是在代码中使用 OutputStream 替代 FileOutputStream 进行数据的写入,由于 FileOutputStream 是 OutputStream 的子类,所以这么做并没有什么问题。

实际上,从文件中读取也是如此。能够从文件中读取某些数据的组件,同样可以很容易的从网络连接中读取相同的数据。只需要保证读取数据的组件依赖于 InputStream 而非 FileInputStream。

示例如下:

public class MyClass {

    public static void main(String[] args) {

        InputStream inputStream = new FileInputStream("c:\\myfile.txt");
        process(inputStream);
    }

    public static void process(InputStream input) throws IOException {
        //do something with the InputStream
    }
}

在此示例中,process() 方法并不关心 InputStream 参数的输入流是来自于文件还是网络(示例只展示了输入流来自文件的版本)。process() 方法只会对 InputStream 进行操作。

英文原文链接:http://tutorials.jenkov.com/java-io/networking.html

------完------

推荐阅读:

Java IO 基础 之 概述(Overview)

Java IO 基础 之 文件(Files)

Java IO 基础 之 流(Streams)

Java IO 基础 之 管道(Pipes)

Java NIO 简明教程

更多学习讨论欢迎进入七日书摘官方群: 七日书摘官方群

七日书摘官方群群聊二维码.png

参考资料:
https://blog.csdn.net/i_am_kop/article/details/78513802
http://ifeve.com/java-io-network/