我正在尝试用Java下载.torrent文件。我提到了这个SO(Java .torrent file download)问题,但是当我运行程序时,它没有开始下载。它绝对不做任何事情。有人可以向我解释我在做什么错。我在下面发布了SSCCE。先谢谢了。

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

public class Test {
    public static void main(String[] args) throws IOException {
        String link = "http://torrage.com/torrent/13764753227BCBE3E8E82C058A7D5CE2BDDF9857.torrent";
        String path = "/Users/Bob/Documents";
        URL website = new URL(link);
        ReadableByteChannel rbc = Channels.newChannel(website.openStream());
        File f = new File(path + "t2.torrent");
        FileOutputStream fos = new FileOutputStream(f);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        fos.close();
    }
}

最佳答案

您未正确设置文件路径的格式。这部分代码是您的问题:

File f = new File(path + "t2.torrent");


更改为此:

File f = new File(path + File.separator + "t2.torrent");


编辑:

如果这样不起作用,则应尝试修复文件路径。您确定不是C:\Users\Bob\Documents之类的东西吗?

修复文件路径并正确下载torrent文件后,如果torrent程序在加载torrent时引发错误,则可能是因为.torrent文件为GZIP格式。要解决此问题,只需遵循您链接到的问题上发布的解决方案:

String link = "http://torrage.com/torrent/13764753227BCBE3E8E82C058A7D5CE2BDDF9857.torrent";
String path = "/Users/Bob/Documents";
URL website = new URL(link);
try (InputStream is = new GZIPInputStream(website.openStream())) {
    Files.copy(is, Paths.get(path + File.separator + "t2.torrent"));
    is.close();
}

关于java - 下载.torrent文件Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22055649/

10-12 02:05