Java 下载长文件会冻结计算机
我为我的游戏私掠者做了一个发射器。它工作完美,下载所有需要的东西——但是,由于某种原因,它冻结了整个电脑 冻结通常发生在做某事时,如果我在电脑前等待下载完成,那么什么也不会发生。然而,当我在妈妈玩“坦克世界”游戏的电脑上测试时,电脑几乎立刻冻结了。如果我玩游戏,那么发射器也会冻结我的电脑 我用Windows8,我妈妈用Windows7 在我自己的计算机上,当这种情况发生时,我可以非常缓慢地移动鼠标(延迟30秒到2分钟),alt+tab不起作用,control+alt+delete起作用(但打开任务管理器时,任务管理器不会出现)。 在我妈妈的电脑上,基本上是一样的,除了鼠标工作正常外,所有东西都是100%冷冻的 只有在下载大型(5MB+)文件时才会发生这种情况。当我的启动器下载较小的文件时,没有问题 我使用以下代码下载文件:Java 下载长文件会冻结计算机,java,Java,我为我的游戏私掠者做了一个发射器。它工作完美,下载所有需要的东西——但是,由于某种原因,它冻结了整个电脑 冻结通常发生在做某事时,如果我在电脑前等待下载完成,那么什么也不会发生。然而,当我在妈妈玩“坦克世界”游戏的电脑上测试时,电脑几乎立刻冻结了。如果我玩游戏,那么发射器也会冻结我的电脑 我用Windows8,我妈妈用Windows7 在我自己的计算机上,当这种情况发生时,我可以非常缓慢地移动鼠标(延迟30秒到2分钟),alt+tab不起作用,control+alt+delete起作用(但打开任
void download(String source, String destination, int size) {
File ofile = new File(System.getProperty("user.dir") + "", destination);
System.out.printf("\nDownloading\n\t%s\nTo\n\t%s\n", source, destination);
try {
if (ofile.exists()) ofile.delete();
if (!ofile.createNewFile()) {
throw new IOException("Can't create " + ofile.getAbsolutePath());
}
int inChar = 0;
URL url = new URL(source);
InputStream input = url.openStream();
FileOutputStream fos = new FileOutputStream(ofile);
for (int i = 0; i < size && inChar != -1; i++) {
int percentage = (int) ((i * 100.0f) / size);
progressBar.setValue(((int) ((percentage * 100.0f) / 100)));
fr.setTitle(ofile.getName() + ": " + progressBar.getValue() + "%" + " Total: " + oprogressBar.getValue() + "%");
inChar = input.read();
fos.write(inChar);
}
input.close();
fos.close();
System.out.println("Downloaded " + ofile.getAbsolutePath());
} catch (EOFException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
void下载(字符串源、字符串目标、整数大小){
File of ile=新文件(System.getProperty(“user.dir”)+“”,destination);
System.out.printf(“\n下载\n\t%s\nTo\n\t%s\n”,源,目标);
试一试{
如果文件的(of ile.exists())of ile.delete();
如果(!ofile.createNewFile()){
抛出新IOException(“无法创建”+ofile.getAbsolutePath());
}
int英寸=0;
URL=新URL(源);
InputStream输入=url.openStream();
FileOutputStream fos=新的FileOutputStream(ofile);
对于(int i=0;i
在互联网上搜索时,我一直无法找到这种情况的副本。非常感谢您的帮助。也许多线程技术可以帮您解决这个问题
有关它的更多信息,请参见,也许多线程技术可以帮助您解决这个问题
有关它的更多信息,请参见缓冲输入流,或一次读取多个字符,或同时读取两个字符。缓冲输入流,或一次读取多个字符,或同时读取两个字符。这很快-对您的好主意投赞成票。如果它解决了这个问题,我会接受答案,尽管我个人怀疑它会。它可以工作,但它看起来像是冰毒:P的下载程序(将其转换为MP4模式)。它并不完美,而且我在显示下载时遇到了问题%-但是,它可以工作:)。这很快-对你的好主意投赞成票。如果它解决了这个问题,我会接受答案,尽管我个人怀疑它会。它可以工作,但它看起来像冰毒:P上的下载程序(将其转换为MP4模式)。它并不完美,而且我在显示下载时遇到问题%-但是,它可以工作:)。