溫馨提示×

java文件傳輸功能怎么實現(xiàn)

小億
124
2023-07-13 17:23:03
欄目: 編程語言

要實現(xiàn)Java文件傳輸功能,可以使用Java的Socket編程來實現(xiàn)。以下是一個簡單的示例代碼,演示了如何在客戶端和服務器之間傳輸文件。

服務器端代碼:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("服務器已啟動,等待客戶端連接...");
Socket socket = serverSocket.accept();
System.out.println("客戶端已連接");
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/test/file.txt"));
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = bis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
bis.close();
socket.close();
serverSocket.close();
System.out.println("文件傳輸完成");
}
}

客戶端代碼:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
public class FileClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 1234);
System.out.println("已連接服務器");
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:/test/file.txt"));
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = bis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.flush();
bos.close();
bis.close();
socket.close();
System.out.println("文件傳輸完成");
}
}

這個示例中,服務器端監(jiān)聽1234端口,客戶端連接到服務器的1234端口??蛻舳藢⒅付ǖ奈募ㄔ谶@個示例中是D:/test/file.txt)發(fā)送給服務器端,服務器端將接收到的文件保存到指定的位置(在這個示例中是D:/test/file.txt)。

注意,這只是一個簡單的示例,實際應用中可能需要對傳輸過程進行更多的處理,例如添加錯誤處理、進度顯示等。

0