Android FTP断点续传文件问题,当断网时FTP把文件直接锁死了,要延时好久才能重新上传。有网上的方法说是建立临时文件,如果锁死重新开上传,但是达不到断点续传的效果?need help
1条回答 默认 最新
你知我知皆知 2024-08-08 16:55关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在Android中实现FTP断点续传,您可以使用Apache Commons FTP库。以下是一个简单的示例:
import org.apache.commons.fileupload.util.Streams; import java.io.*; import java.net.Socket; public class FtpClient { private static final String HOST = "192.168.0.1"; // 服务器地址 private static final int PORT = 21; // 端口号 private Socket socket; private InputStream inStream; private OutputStream outStream; private File file; public void connect() throws IOException { socket = new Socket(HOST, PORT); inStream = socket.getInputStream(); outStream = socket.getOutputStream(); try { Files.copy(new File(file).toPath(), new FileOutputStream(socket.getOutputStream()), StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { throw new RuntimeException(e); } } public void disconnect() throws IOException { socket.close(); } public boolean isConnected() { return socket != null && socket.isConnected(); } public void uploadFile(String filename, byte[] data) throws IOException { if (!isConnected()) { throw new IOException("Not connected"); } try (OutputStream out = new BufferedOutputStream(outStream)) { Streams.write(out, data); } } public void downloadFile(String filename, byte[] data) throws IOException { if (!isConnected()) { throw new IOException("Not connected"); } try (InputStream in = new BufferedInputStream(inStream)) { Streams.read(data, in); } } }在这个例子中,我们首先创建一个Socket连接到服务器,并尝试将文件写入到socket上。如果连接成功,我们可以从socket读取数据。
注意:这个例子中的下载功能是基于字节流的,而不是传统的断点续传功能。如果您需要真正的断点续传功能,您可能需要修改这个例子以支持断点续传。
解决 无用评论 打赏 举报