JAVA - Resume/Pause https连接下载
JAVA - Resume/Pause https connection download
我有这样的代码
public void downloadZip(String URL, String fileName) {
try {
java.net.URL url = new URL(URL);
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
FileOutputStream out = new FileOutputStream(save + "/" + fileName);
byte[] b = new byte[4096];
int count;
while ((count = in.read(b)) >= 0) {
out.write(b, 0, count);
}
out.flush(); out.close(); in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
如何重写它才能continue/stop加载?
您需要使用单独的线程使用 SwingUtilities。如果你想停止,你可以在 GUI 线程中设置一个标志。如果想继续,可以重新打开URL,使用InputStream的skip方法从离开的地方重新开始。要暂停,恢复你可以使用信号。参见 http://tutorials.jenkov.com/java-concurrency/thread-signaling.html。
您需要了解 multi-threading。
我有这样的代码
public void downloadZip(String URL, String fileName) {
try {
java.net.URL url = new URL(URL);
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
FileOutputStream out = new FileOutputStream(save + "/" + fileName);
byte[] b = new byte[4096];
int count;
while ((count = in.read(b)) >= 0) {
out.write(b, 0, count);
}
out.flush(); out.close(); in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
如何重写它才能continue/stop加载?
您需要使用单独的线程使用 SwingUtilities。如果你想停止,你可以在 GUI 线程中设置一个标志。如果想继续,可以重新打开URL,使用InputStream的skip方法从离开的地方重新开始。要暂停,恢复你可以使用信号。参见 http://tutorials.jenkov.com/java-concurrency/thread-signaling.html。
您需要了解 multi-threading。