首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于定界符java从加密文件中读取行

基于定界符java从加密文件中读取行
EN

Stack Overflow用户
提问于 2017-07-13 15:33:47
回答 3查看 121关注 0票数 1

我有一个包含加密Json字符串的文件,我使用带填充的AES加密,我有另一个类读取这些文件作为输入并解密加密的Json字符串,我面临的问题是加密的json字符串被写在多行中,例如

代码语言:javascript
运行
复制
TRX+s0CJYKyKnUJFrFpG77GRxQBDqj4diJhEEmP2sPO0RkgZNeR0acPftfj85ef7WA0ty078rPvk
l3GTb8blA9ytd/SXkaGbp37pLIZilSYoyHTMy/Dd+GiNommta/aqPd5v0CRPda4lKf3tQgGBAw==

我使用Java8通过File.lines(path)读取字符串,这只给了我加密字符串的第一行,而我需要将整个加密字符串读入一个string对象,有没有办法为File.lines()指定不同的分隔符?另外请注意,实际的加密字符串大约有10行,并且文件包含大量文档。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-13 17:53:34

好的,这就是我所做的,我写了一个带有分隔符的加密字符串,然后使用scanner从文件中读取,代码如下

代码语言:javascript
运行
复制
Scanner x = new Scanner(File);
x.setDelimeter(",");
while(x.hasNext()){
decrypt(x.next());
}

答案2:使用不向加密字符串添加新行的不同编码器,并使用现有的File.readLine()方法。我使用commons io编解码器base64编码器。

票数 0
EN

Stack Overflow用户

发布于 2017-07-13 17:14:02

在您的输出中尝试这一点。

代码语言:javascript
运行
复制
string.replaceAll(".*\\R.*", "");
票数 0
EN

Stack Overflow用户

发布于 2017-07-13 19:25:03

Files.lines(path)方法本身不允许使用不同的分隔符。如果您想保留与当前代码样式类似的代码样式,我可以这样将文件读入单个字符串:

代码语言:javascript
运行
复制
String encrypted ="";
for (String line : Files.readAllLines(path)) encrypted += line;

这将依次用每一行填充字符串,删除换行符。如果你想保留它们,可以手动添加回来:encrypted += line + "\n";

也就是说,如果您写入文件的方法导致文件中出现换行符,并且您不希望文件中有任何换行符,那么您首先应该重新评估输出,而不是调整读取方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45074209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档