如何使用Java通过网络将文件从一台计算机传输到另一台计算机?

11 java networking file

我需要一个简单的应用程序,最好是跨平台的应用程序,它可以在两台计算机之间发送文件.

它只需要接受并发送文件,并显示进度条.我可以使用哪些应用程序或如何编写应用程序?

jjn*_*guy 7

发送和接收文件

发送和接收文件基本上分为两段简单的代码.

接收代码:

ServerSocket serverSoc = new ServerSocket(LISTENING_PORT);

Socket connection = serverSoc.accept();

// code to read from connection.getInputStream();
Run Code Online (Sandbox Code Playgroud)

发送代码:

File fileToSend;
InputStream fileStream = new BufferedInputStream(fileToSend);

Socket connection = new Socket(CONNECTION_ADDRESS, LISTENING_PORT);
OutputStream out = connection.getOutputStream();

// my method to move data from the file inputstream to the output stream of the socket
copyStream(fileStream, out);
Run Code Online (Sandbox Code Playgroud)

发送代码片段将在要发送文件时发送代码的计算机上运行.

接收代码需要放在一个循环中,这样每当有人想要连接到服务器时,服务器就可以处理请求,然后返回等待serverSoc.accept().

为了允许在两台计算机之间发送文件,每台计算机都需要运行服务器(接收代码)来监听传入的文件,并且当他们想要发送文件时,他们都需要运行发送代码.

进度条

JProgressBarSwing中是很容易的使用.但是,让它正常工作并显示文件传输的当前进度稍微困难一些.

要获得一个显示在表单上的进度条,只需将其放到一个JFrame并且可能设置为setIndeterminate(false)so hat,它表明您的程序正在运行.

要正确实现进度条,您需要创建自己的a实现SwingWorker.Java教程在他们的并发课程中有一个很好的例子.

尽管如此,这是一个相当困难的问题.如果您需要更多帮助,我建议您自己提出这个问题.


Nat*_*ate 7

Woof是一个很酷的Python脚本,可能适合你:

http://www.home.unix-ag.org/simon/woof.html