0
这是一个服务器,它从客户端接收文件。它收到完整的文件,但进度条不显示。我正在使用ProgressInputStream。这里是我使用SwingWorker为进度条创建新线程的一段代码。ProgressMonitorInputStream不弹出
SwingWorker<Void,Void> worker = new SwingWorker<Void,Void>()
{
protected Void doInBackground()
{
try {
ss = new ServerSocket(port);
s = ss.accept();
bytes = new byte[1024];
FileOutputStream fos = new FileOutputStream(new File(FileName));
DataInputStream dis = new DataInputStream(s.getInputStream());
pmis = new ProgressMonitorInputStream(frame,"Receiving",dis);
pmis.getProgressMonitor().setMillisToPopup(10);
while(pmis.read(bytes) > 0)
{
fos.write(bytes);
}
ss.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
};
worker.execute();
任何帮助,将不胜感激。对不起,我的英语不好。感谢预期。
对不起,但它没有弹出。我已经尝试发送700多MB的文件,但没有运气。我也已经设置弹出时间为10毫秒。 'pmis.getProgressMonitor()。setMillisToPopup(10);' – essaji 2014-12-03 13:12:36
尝试调用'setMaximum()'来代替,如果你有任何想法提前有多大的文件。 – EJP 2014-12-05 08:44:22
我认为问题是FileOutputStream需要关闭才能显示弹出进度条,但我无法关闭FileOutputStream因为数据正在通过此流存储。我找不到解决这个问题的办法。 – essaji 2014-12-05 13:30:21