正在加密大文件时,Java程序没有响应

时间:2019-01-08 16:36:25

标签: java user-interface encryption out-of-memory

我正在使用AES CBC模式进行加密/解密Java程序,并且我将cipher.update()cipher.doFinal()结合使用来处理大型文件并避免使用outOfMemoryException

现在,当加密/解密大文件(例如2 GB)时,在后台一切运行正常(我可以在Intellij运行中看到),但是程序的GUI在此处理运行时一直没有响应,直到加密/解密为止已经完成了。

而且,运行中没有错误,那么可能是什么问题?

2 个答案:

答案 0 :(得分:3)

听起来像您正在使用UI线程进行计算。使用后台线程。

如果您的用户界面是摆动的,则可以使用SwingWorker

答案 1 :(得分:2)

您最有可能在UI线程上运行加密,这将锁定UI,直到完成加密为止。您应该改为生成一个新线程并在其中运行加密,以便您的UI保持响应状态。

还要确保至少为问题添加最少的代码,以便人们在这里可以为您提供更好的帮助。