当前位置: 首页 > 知识库问答 >
问题:

从源代码下载文件 [即没有特定的文件名]

终洛华
2023-03-14

我想为我的项目制作一个安装程序。我知道该怎么做,但只有当我在网页上有要下载的文件的特定名称时。源锻造可以自动找到最新的下载,但是我如何使用Java来获取此文件?谢谢。

如果您需要,项目下载链接在这里[不是自动下载]:https://sourceforge.net/projects/herobrawl/files/?source=navbar

再次感谢各位,

我感谢所有的帮助。

共有1个答案

曹建华
2023-03-14

我将向您展示如何使用HTML解析。但是,如果SourceForgeAPI支持此功能,那么最好使用SourceForge API。

要运行这段代码,您需要JSOUP

public static void main(String[] args) throws IOException {
    System.out.println("Parsing the download page...");
    //Get the versions page
    Document doc = Jsoup.connect("http://sourceforge.net/projects/herobrawl/files/").get();
    //Every link to the download page has class "name"
    Elements allOddFiles = doc.select(".name");
    //Elements are sorted by date, so the first element is the last added
    Element lastUploadedVersion = allOddFiles.first();
    //Get the link href
    String href = lastUploadedVersion.attr("href");
    //Download the jar
    System.out.println("Parsing done.");
    System.out.println("Downloading...");
    String filePath = downloadFile(href, "newVersion.jar");
    System.out.println("Download completed. File saved to \"" + filePath + "\"");
}

/**
 * Downloads a file
 *
 * @param src The file download link
 * @param fileName The file name on the local machine
 * @return The complete file path
 * @throws IOException
 */
private static String downloadFile(String src, String fileName) throws IOException {
    String folder = "C:/myDirectory";//change this to whatever you need
    //Open a URL Stream
    URL url = new URL(src);
    InputStream in = url.openStream();
    OutputStream out = new BufferedOutputStream(new FileOutputStream(folder + fileName));
    for (int b; (b = in.read()) != -1;) {
        out.write(b);
    }
    out.close();
    in.close();
    return folder + fileName;
}
 类似资料:
  • 我有这个代码来下载一个文件。 这是服务器和密码的一部分。 简单的填充下载,但此行出错 它给了我错误,我希望你能理解我现在面临的问题 java.net.SocketExc0019:软件导致连接中止:套接字写入错误在java.net.SocketOutputStream.socketWrite0(本地方法)在java.net.SocketOutputStream.socket写入(SocketOutp

  • 问题内容: 在Windows中使用Java代码,我需要从放置在服务器中的目录中下载几个文件。服务器中的那些文件是分别生成的。所以我不知道这些文件的名称。有什么方法可以使用JAVA下载它并将其保存在特定的文件夹中。 我正在使用apache tomcat。 我阅读了与Java文件下载相关的所有其他线程。但是他们都不满足我的要求。 问题答案: 使用和分类。

  • 我已经检查了SFTP服务器,它是启动的。

  • 我是Maven的新手,但总体情况是,我需要(在命令行中)下载某个工件的POM文件,该工件位于远程Maven存储库(Artifactory)中,只使用工件名称,并使其动态化(通过只给出存储库根路径和工件名称,这样我就可以更改它在存储库中的位置,并且仍然下载它)。 我的第一个问题是:那可能吗,或者我必须详细说明整个工件路径、groupId、artifactId和version? 第二点:我使用这个ma

  • 我在从AWS下载上面的文件时遇到了一些麻烦。我试图用CouldBerry Explore和Java下载这个文件,但失败了。aws文档说我需要特殊的处理。(https://docs.aws.amazon.com/amazons3/latest/dev/usingmetadata.html)那么,你能告诉我如何用“:”下载这个文件吗? 以下是我的文件信息。 文件名:“E:\home\temp\test

  • 6.10.特定的资源文件 Android允许你提供多种资源文件。比如你可以提供不同版本的strings.xml、status.xml或者background.png,针对不同的情景选用不同的资源文件。 假如你想让外国人使用你的应用程序,但他们的语言不同。这时你可能希望提供一个特定语言的strings.xml文件。或者你想让自己的应用程序跑在某设备上,但它的分辨率不一样,这时你可能希望提供一个特定的