2017-07-13 51 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";

这就是说,如果写入文件的方法导致换行符出现在文件中,并且不希望文件中有任何换行符,你应该重新评估的第一件事是输出,而不是调整你的阅读方法。

相关问题