温馨提示×

java文件传输功能怎么实现

小亿
112
2023-07-13 17:23:03
栏目: 编程语言

要实现Java文件传输功能,可以使用Java的Socket编程来实现。以下是一个简单的示例代码,演示了如何在客户端和服务器之间传输文件。

服务器端代码:

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("文件传输完成");
}
}

这个示例中,服务器端监听1234端口,客户端连接到服务器的1234端口。客户端将指定的文件(在这个示例中是D:/test/file.txt)发送给服务器端,服务器端将接收到的文件保存到指定的位置(在这个示例中是D:/test/file.txt)。

注意,这只是一个简单的示例,实际应用中可能需要对传输过程进行更多的处理,例如添加错误处理、进度显示等。

0