1. 程式人生 > >Java IO: 網路

Java IO: 網路

原文連結 作者: Jakob Jenkov 譯者: 李璟([email protected]) 校對:方騰飛

Java中網路的內容或多或少的超出了Java IO的範疇。關於Java網路更多的是在我的Java網路教程中探討。但是既然網路是一個常見的資料來源以及資料流目的地,並且因為你使用Java IO的API通過網路連線進行通訊,所以本文將簡要的涉及網路應用。

當兩個程序之間建立了網路連線之後,他們通訊的方式如同操作檔案一樣:利用InputStream讀取資料,利用OutputStream寫入資料。換句話來說,Java網路API用來在不同程序之間建立網路連線,而Java IO則用來在建立了連線之後的程序之間交換資料。

基本上意味著如果你有一份能夠對檔案進行寫入某些資料的程式碼,那麼這些資料也可以很容易地寫入到網路連線中去。你所需要做的僅僅只是在程式碼中利用InputStream替代FileInputStream進行資料的寫入。因為FileInputStream是InputStream的子類,所以這麼做並沒有什麼問題。(譯者注:此處應該是OutputStream和FileOutputStream)

實際上對於檔案的讀操作也類似,一個具有讀取檔案資料功能的元件,同樣可以輕鬆讀取網路連線中的資料。只需要保證讀取資料的元件是基於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進行操作。