天天看點

Java IO: 網絡

當兩個程序之間建立了網絡連接配接之後,他們通信的方式如同操作檔案一樣:利用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進行操作。