2017-07-13 5 views
1

私は暗号化されたJson Stringsを含むファイルを持っています、私はパディングでAES暗号化を使用しています。これらのファイルを入力として読み取って暗号化されたJson Strings、私は暗号化されたJSON文字列iがFile.lines(パス)を使用して文字列を読み取るためのJava 8を使用していますdelimeter javaに基づいて暗号化されたファイルから行を読み取るjava

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

のような複数の行に書かれているで、これは私に暗号化された文字列の最初の行のみを与えている直面しています代わりに、私は文字列オブジェクトに読み込まれるencrpted文字列全体が必要ですが、File.lines()の別の区切り文字を指定する方法はありますか?また、実際の暗号化された文字列は約10行に及び、ファイルには多数の文書があることにも注意してください。

答えて

0

わかりましたが、私がやったことだ、私は「」区切りで暗号化された文字列を書いて、そのファイルからの読み取りにスキャナを使用し、コードが

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

回答2以下のようになります:使用暗号化された文字列に新しい行を追加しない別のエンコーダ。既存のFile.readLine()メソッドを使用する。コモンズioコーデックベース64エンコーダを使用しました。

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";

言われているように、ファイルに書き込む方法でファイルに改行が現れていて、ファイルに改行を入れたくない場合は、あなたが再評価するべき最初のことは、あなたの読書方法を調整するのではなく、その出力です。

関連する問題