gpt4 book ai didi

java - 如何从 Java 执行 Java?

转载 作者:行者123 更新时间:2023-12-02 04:26:54 29 4
gpt4 key购买 nike

我有这个 DownloadFile.java 并按预期下载该文件:

import java.io.*;
import java.net.URL;

public class DownloadFile {
public static void main(String[] args) throws IOException {
String fileName = "setup.exe";
// The file that will be saved on your computer
URL link = new URL("http://onlinebackup.elgiganten.se/software/elgiganten/setup.exe");
// The file that you want to download

// Code to download
InputStream in = new BufferedInputStream(link.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1 != (n = in.read(buf))) {
out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();

FileOutputStream fos = new FileOutputStream(fileName);
fos.write(response);
fos.close();
// End download code

System.out.println("Finished");
}
}

我想通过 Gui.java 中的鼠标事件执行此操作。

private void jLabel17MouseClicked(java.awt.event.MouseEvent evt){

}

我该怎么做?

最佳答案

您当前的方法是一个静态方法,这很好,但它提取的所有数据都紧紧保存在主方法中,防止其他类使用它,但幸运的是,这可以纠正。

我的建议:

  • 重新编写 DownloadFile 代码,使其不仅仅是一个静态主方法,而是一个可以被其他类轻松调用的方法,并从感兴趣的文件返回数据。这样外部类就可以调用该方法,然后接收该方法提取的数据。
  • 为其提供一个字符串参数,该参数将允许调用代码传入 URL 地址。
  • 为其提供一个要写入数据的文件的 File 参数。
  • 如果调用程序需要此数据,请考虑让它返回数据(字节数组?)。
  • 或者如果不需要返回数据,也许可以返回 boolean 值来指示下载是否成功。
  • 确保您的方法抛出它需要抛出的所有异常(例如 IO 和 URL 异常)。
  • 此外,如果要由 Swing GUI 调用此代码,请务必在后台线程(例如 SwingWorker 中)中调用此类代码,以便此代码不会占用 Swing 事件线程,从而渲染您的GUI 卡住了一段时间。

关于java - 如何从 Java 执行 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32037572/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com