Java網絡編程-文件上傳案例-客戶端


Java網絡編程-文件上傳案例-客戶端

Java網絡編程
## 文件上傳案例
### 客戶端
- 目的:讀取本地文件,上傳到服務器,讀取服務器回寫的數據
- 明確:
- 數據源:d:\\\\1.jpg
- 目的地:服務器
- 實現步驟:
1. 創建一個本地字節輸入流FileInputStream對象,構造方法中綁定要讀取的數據源
2. 創建一個客戶端Socket對象,構造方法中綁定服務器的IP地址和端口號
3. 使用Socket中的方法getOutputStream,獲取網絡字節輸出流OutputStream對象
4. 使用本地字節輸入流FileInputStream對象中的read方法讀取本地文件
5. 使用網絡字節輸出流OutputStream對象的write方法,把讀取到的文件上傳到服務器
6. 使用Socket中的方法getInputStream,獲取網絡字節輸入流InputStream對象
7. 使用網絡字節輸出流InputStream對象中的方法read讀取服務器回寫的數據
8. 釋放資源(FileInputStream,Socket)
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class TCPClient {
public static void main(String[] args) throws IOException {
//1. 創建一個本地字節輸入流FileInputStream對象,構造方法中綁定要讀取的數據源

FileInputStream fis = new FileInputStream("d:\\\\1.jpg");
//2. 創建一個客戶端Socket對象,構造方法中綁定服務器的IP地址和端口號
Socket socket = new Socket("127.0.0.1",8888);
//3. 使用Socket中的方法getOutputStream,獲取網絡字節輸出流OutputStream對象
OutputStream os = socket.getOutputStream();
//4. 使用本地字節輸入流FileInputStream對象中的read方法讀取本地文件
int len =0;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
//5. 使用網絡字節輸出流OutputStream對象的write方法,把讀取到的文件上傳到服務器
os.write(bytes,0,len);
}

//6. 使用Socket中的方法getInputStream,獲取網絡字節輸入流InputStream對象
InputStream is = socket.getInputStream();
//7. 使用網絡字節輸出流InputStream對象中的方法read讀取服務器回寫的數據

while ((len = is.read(bytes)) != -1) {
System.out.println(new String(bytes,0,len));
}
//8. 釋放資源(FileInputStream,Socket)
fis.close();
socket.close();

}
}
```


分享到:


相關文章: