Java IO: 网络
原文鏈接?作者:?Jakob?Jenkov?譯者:?李璟(jlee381344197@gmail.com) 校對(duì):方騰飛
Java中網(wǎng)絡(luò)的內(nèi)容或多或少的超出了Java?IO的范疇。關(guān)于Java網(wǎng)絡(luò)更多的是在我的Java網(wǎng)絡(luò)教程中探討。但是既然網(wǎng)絡(luò)是一個(gè)常見的數(shù)據(jù)來源以及數(shù)據(jù)流目的地,并且因?yàn)槟闶褂肑ava?IO的API通過網(wǎng)絡(luò)連接進(jìn)行通信,所以本文將簡(jiǎn)要的涉及網(wǎng)絡(luò)應(yīng)用。
?
當(dāng)兩個(gè)進(jìn)程之間建立了網(wǎng)絡(luò)連接之后,他們通信的方式如同操作文件一樣:利用InputStream讀取數(shù)據(jù),利用OutputStream寫入數(shù)據(jù)。換句話來說,Java網(wǎng)絡(luò)API用來在不同進(jìn)程之間建立網(wǎng)絡(luò)連接,而Java?IO則用來在建立了連接之后的進(jìn)程之間交換數(shù)據(jù)。
基本上意味著如果你有一份能夠?qū)ξ募M(jìn)行寫入某些數(shù)據(jù)的代碼,那么這些數(shù)據(jù)也可以很容易地寫入到網(wǎng)絡(luò)連接中去。你所需要做的僅僅只是在代碼中利用InputStream替代FileInputStream進(jìn)行數(shù)據(jù)的寫入。因?yàn)镕ileInputStream是InputStream的子類,所以這么做并沒有什么問題。(譯者注:此處應(yīng)該是OutputStream和FileOutputStream)
實(shí)際上對(duì)于文件的讀操作也類似,一個(gè)具有讀取文件數(shù)據(jù)功能的組件,同樣可以輕松讀取網(wǎng)絡(luò)連接中的數(shù)據(jù)。只需要保證讀取數(shù)據(jù)的組件是基于InputStream而非FileInputStream即可。
這是一份簡(jiǎn)單的代碼示例:
| 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 | } |
在這個(gè)例子中,process()方法并不關(guān)心InputStream參數(shù)的輸入流,是來自于文件還是網(wǎng)絡(luò)(例子只展示了輸入流來自文件的版本)。process()方法只會(huì)對(duì)InputStream進(jìn)行操作。
原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明:?轉(zhuǎn)載自并發(fā)編程網(wǎng) – ifeve.com本文鏈接地址:?Java IO: 網(wǎng)絡(luò)
?
轉(zhuǎn)載于:https://www.cnblogs.com/dassmeta/p/5323889.html
總結(jié)
以上是生活随笔為你收集整理的Java IO: 网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面试】shuffle函数的实现
- 下一篇: 准备踏入Android开发的道路