網絡文件傳輸的問題,實際也是一種IO讀寫的基本問題.對於網絡的文件數據寫入到服務器的進程中,然后把進程中的網絡IO系統傳遞到客戶機,這個階段,數據以字節流的形式保存.當該字節流被客戶進程接受后,客戶進程通過客戶本地文件流寫入客戶本地的文件系統中.
根據以網絡IO系統進行操作的操作接口,已經一個可以把上分析,我們可以把問題歸結到對以下編程接口的需求網絡網絡接收器
3. 本地文件讀/寫器
而這些java.io和上任務,
1. DataOutputStream和DataInputStream實現類提供了網絡java.io.*;
import 數據
File file=new File("lishengjie.jpg");
FileInputStream fos=new FileInputStream(file);
//創建網絡輸出流並提供數據寫出數據寫往客戶端
num=fos.read(buf);//繼續從文件中讀取java.io.*;
import 網絡
file.createNewFile();
RandomAccessFile raf=new RandomAccessFile(file,"rw");
// 通過Socket連接文件服務器
Socket server=new Socket(InetAddress.getLocalHost(),3108);
//創建數據
InputStream netIn=server.getInputStream();
InputStream in=new DataInputStream(new BufferedInputStream(netIn));
//創建緩沖區緩沖數據
byte[] buf=new byte[2048];
int num=in.read(buf);
while(num!=(-1)){//是否讀完所有數據寫往文件
raf.skipBytes(num);//順序寫文件字節
num=in.read(buf);//繼續從上代碼:
服務器
1. 服務器從本地文件系統讀取文件
2. 服務器創建數據包裝器
4. 服務器將本地文件寫入網絡
客戶端
1. 客戶端建立新文件准備存儲來自數據
2. 客戶端連接服務器
3. 客戶端通過數據並進行數據寫入緩沖區
5. 客戶端從緩沖區把數據寫入客戶本地文件