2017-07-13 93 views
1

我有一個包含加密Json字符串的文件,我使用AES加密和填充,我有另一個類讀取這些文件作爲輸入並解密加密的Json字符串,問題我面臨被加密的JSON字符串被以多行這樣寫從基於分隔符的加密文件中讀取行java

TRX+s0CJYKyKnUJFrFpG77GRxQBDqj4diJhEEmP2sPO0RkgZNeR0acPftfj85ef7WA0ty078rPvk 
l3GTb8blA9ytd/SXkaGbp37pLIZilSYoyHTMy/Dd+GiNommta/aqPd5v0CRPda4lKf3tQgGBAw== 

我使用的Java 8讀取使用File.lines(路徑)的字符串,這是給我只加密的字符串的第一行,而是我需要將整個加密字符串讀入字符串對象,有沒有辦法指定File.lines()的不同分隔符?另請注意,實際加密的字符串跨越大約10行,並且該文件具有大量文檔。

回答

0

好這裏是我做什麼,我寫了一個分隔符的加密字符串「」,然後用掃描儀從文件中讀取的代碼放在如下

Scanner x = new Scanner(File); 
x.setDelimeter(","); 
while(x.hasNext()){ 
decrypt(x.next()); 
} 

答2:使用一種不會將新行添加到加密字符串的編碼器,並使用現有的File.readLine()方法。我使用的是commons io編解碼器base64編碼器。

0

使用正則表達式來讀它

((.|\n)*)== 
+0

我應該如何通過這個? – kumarD

0

試試這個在您的輸出。

string.replaceAll(".*\\R.*", ""); 
0

Files.lines(path)方法本身不允許有不同的分隔符。如果您想保留類似的代碼風格,以你目前有,我將文件讀入到一個字符串是這樣的:

String encrypted =""; 
for (String line : Files.readAllLines(path)) encrypted += line; 

這將填補串反過來每行,除去新行。如果你希望他們留下來,手動添加他們:encrypted += line + "\n";

這就是說,如果寫入文件的方法導致換行符出現在文件中,並且不希望文件中有任何換行符,你應該重新評估的第一件事是輸出,而不是調整你的閱讀方法。

相關問題