閱讀702 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java IO: 網絡

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

當兩個進程之間建立了網絡連接之後,他們通信的方式如同操作文件一樣:利用InputStream讀取數據,利用OutputStream寫入數據。換句話來說,Java網絡API用來在不同進程之間建立網絡連接,而Java IO則用來在建立了連接之後的進程之間交換數據。

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

實際上對於文件的讀操作也類似,一個具有讀取文件數據功能的組件,同樣可以輕鬆讀取網絡連接中的數據。隻需要保證讀取數據的組件是基於InputStream而非FileInputStream即可。

這是一份簡單的代碼示例:

01 public class MyClass {
02  
03     public static void main(String[] args) {
04         InputStream inputStream = new FileInputStream("c:\\myfile.txt");
05         process(inputStream);
06     }
07  
08     public static void process(InputStream input) throws IOException {
09         //do something with the InputStream
10     }
11  
12 }

在這個例子中,process()方法並不關心InputStream參數的輸入流,是來自於文件還是網絡(例子隻展示了輸入流來自文件的版本)。process()方法隻會對InputStream進行操作。

最後更新:2017-05-23 14:35:27

  上一篇:go  Java網絡教程
  下一篇:go  華棲雲與阿裏雲首推“雲上電視台”,可實現內容雲端一站式製作