当一台计算机从文件服务器,如何使用Java通过网络将文件从一台计算机传输到另一台计算机?...

本文介绍了如何在Java中实现文件的发送和接收,包括ServerSocket和Socket的使用,以及如何通过SwingWorker创建进度条来显示文件传输进度。在发送文件时,发送代码在发送方运行,而接收代码需要在循环中运行以处理多个连接请求。同时,文章提到了使用SwingWorker更新进度条的复杂性,并建议寻求进一步的帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小编典典

发送和接收文件

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

接收代码:

ServerSocket serverSoc = new ServerSocket(LISTENING_PORT);

Socket connection = serverSoc.accept();

// code to read from connection.getInputStream();

发送代码:

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);

当他们想要发送文件时,发送代码段将在正在发送代码的计算机上运行。

接收代码需要放入一个循环中,以便每次有人想要连接到服务器时,服务器都可以处理该请求,然后返回到在serverSoc.accept()上等待。

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

进度条

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

要使进度条显示在表单上,​​仅涉及将其放到上JFrame,也许还要进行设置,setIndeterminate(false)以表明程序正在运行。

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

但是,这本身就是一个相当困难的问题。如果您需要更多帮助,我建议您自己问这个问题。

2020-11-13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值