From 4615e1653b5c6a5e3980bab76444cbec9ec1dd34 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Wed, 4 Jul 2018 13:50:06 +0200 Subject: [PATCH] Use BufferedReader when decrypting --- .../encrypt/FileEncrypterDecrypter.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/core-java/src/main/java/com/baeldung/encrypt/FileEncrypterDecrypter.java b/core-java/src/main/java/com/baeldung/encrypt/FileEncrypterDecrypter.java index aad2089d8b..b557ccf31a 100644 --- a/core-java/src/main/java/com/baeldung/encrypt/FileEncrypterDecrypter.java +++ b/core-java/src/main/java/com/baeldung/encrypt/FileEncrypterDecrypter.java @@ -2,10 +2,7 @@ package com.baeldung.encrypt; import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; +import java.io.*; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @@ -43,14 +40,16 @@ class FileEncrypterDecrypter { fileIn.read(fileIv); cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(fileIv)); - try (CipherInputStream cipherIn = new CipherInputStream(fileIn, cipher)) { - InputStreamReader inReader = new InputStreamReader(cipherIn); + try ( + CipherInputStream cipherIn = new CipherInputStream(fileIn, cipher); + InputStreamReader inputReader = new InputStreamReader(cipherIn); + BufferedReader reader = new BufferedReader(inputReader) + ) { StringBuilder sb = new StringBuilder(); - int c = inReader.read(); - while (c != -1) { - sb.append((char) c); - c = inReader.read(); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line); } content = sb.toString(); }