簡體   English   中英

Java中加密線程的進展

[英]Progress of encryption thread in Java

我正在編寫一個簡單的程序來獲取文件,使用AES對其進行加密,然后使用Java將輸出存儲在單獨的文件中。 Java對我來說是一種新語言,但在某些方面它與C#類似,並且我已經使用C#一段時間了,因此學習進展相對順利。

我的問題是,我想在一個單獨的線程中運行AES密碼,這似乎很容易,但是我希望能夠在Swing進度欄中向用戶報告大致的進度。 我不知道如何獲取加密狀態才能將其報告給用戶。

我確實有個主意,除非有一種非常簡單的方法,否則我想征詢他們的意見。 我的想法是,在加密開始之前,獲取輸入文件的大小(以字節為單位),然后在計時器上,找到輸出文件中當前存在的字節數,以確定完成百分比。 但是,我確實想知道當我在Java中的另一個線程中有一個打開的句柄時,是否能夠在輸出文件上打開一個新的文件句柄。 我的解決方案是否可行,或者有更簡單的方法嗎?

如果知道文件的大小,請使用CountingInputStream之類的東西,並使用到目前為止使用getCount()讀取的字節來計算百分比。

這里應該是方法-

strToEncrypt =文件內容(假設)。您應該使用cipher.getOutputSize(strToEncrypt.getBytes().length)

獲取文件的輸出估算值。 現在這很棘手-當寫入一定數量的字節時,您應該運行一些示例代碼來確定文件大小。 Windows can give a different estimate of file sizeUNIX will give your the correct file size (in terms of byte length you get from this code)

一旦獲得了字節數組大小的估計值,就可以使用java.io.File來獲取大小並計算出百分比。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM