我正在使用AES CBC模式进行加密/解密Java程序,并且我将cipher.update()
与cipher.doFinal()
结合使用来处理大型文件并避免使用outOfMemoryException
。
现在,当加密/解密大文件(例如2 GB)时,在后台一切运行正常(我可以在Intellij运行中看到),但是程序的GUI在此处理运行时一直没有响应,直到加密/解密为止已经完成了。
而且,运行中没有错误,那么可能是什么问题?
答案 0 :(得分:3)
听起来像您正在使用UI线程进行计算。使用后台线程。
如果您的用户界面是摆动的,则可以使用SwingWorker
。
答案 1 :(得分:2)
您最有可能在UI线程上运行加密,这将锁定UI,直到完成加密为止。您应该改为生成一个新线程并在其中运行加密,以便您的UI保持响应状态。
还要确保至少为问题添加最少的代码,以便人们在这里可以为您提供更好的帮助。