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