當兩個程序之間建立了網絡連接配接之後,他們通信的方式如同操作檔案一樣:利用inputstream讀取資料,利用outputstream寫入資料。換句話來說,java網絡api用來在不同程序之間建立網絡連接配接,而java io則用來在建立了連接配接之後的程序之間交換資料。
基本上意味着如果你有一份能夠對檔案進行寫入某些資料的代碼,那麼這些資料也可以很容易地寫入到網絡連接配接中去。你所需要做的僅僅隻是在代碼中利用inputstream替代fileinputstream進行資料的寫入。因為fileinputstream是inputstream的子類,是以這麼做并沒有什麼問題。(譯者注:此處應該是outputstream和fileoutputstream)
實際上對于檔案的讀操作也類似,一個具有讀取檔案資料功能的元件,同樣可以輕松讀取網絡連接配接中的資料。隻需要保證讀取資料的元件是基于inputstream而非fileinputstream即可。
這是一份簡單的代碼示例:
<code>01</code>
<code>public</code> <code>class</code> <code>myclass {</code>
<code>02</code>
<code>03</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>main(string[] args) {</code>
<code>04</code>
<code> </code><code>inputstream inputstream = </code><code>new</code> <code>fileinputstream(</code><code>"c:\\myfile.txt"</code><code>);</code>
<code>05</code>
<code> </code><code>process(inputstream);</code>
<code>06</code>
<code> </code><code>}</code>
<code>07</code>
<code>08</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>process(inputstream input) </code><code>throws</code> <code>ioexception {</code>
<code>09</code>
<code> </code><code>//do something with the inputstream</code>
<code>10</code>
<code>11</code>
<code>12</code>
<code>}</code>
在這個例子中,process()方法并不關心inputstream參數的輸入流,是來自于檔案還是網絡(例子隻展示了輸入流來自檔案的版本)。process()方法隻會對inputstream進行操作。