Чтение данных из ByteArrayOutputStream

Я расшифровал данные в bytearrayoutputstream. Я хочу прочитать данные в каждой строке (не уверен, что это возможно). Может ли кто-нибудь подсказать, как я могу это сделать.

Основное требование — прочитать зашифрованный файл, расшифровать и прочитать данные без записи на диск. Я уже рассмотрел часть шифрования и дешифрования, но не смог прочитать данные без записи на диск. Некоторые предложили использовать bytearrayoutputStream, поэтому сейчас застряли.

ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream(inputBytes.length);
byteArrayOutputStream.write(outputBytes);

если я просто распечатаю переменную, она даст мне все данные сразу, как показано ниже.

SQlServer,"connection string","user name","password"
Oracle,"connection string","user name","password"

Я пытаюсь прочитать строку данных, чтобы сопоставить имя сервера и получить имя пользователя и другие данные.


person Shubham Sahay    schedule 04.01.2019    source источник
comment
Возможный дубликат Как читать большой текстовый файл построчно с помощью Java?   -  person Alex Shesterov    schedule 04.01.2019
comment
Вы пытались использовать toByteArray?   -  person Leonardo Alves Machado    schedule 04.01.2019
comment
@LeonardoAlvesMachado да, не работает ... не могли бы вы предложить, если у вас есть способ его использовать.   -  person Shubham Sahay    schedule 04.01.2019
comment
Правильным способом было бы вообще не иметь ByteArrayOutputStream, а вместо этого обернуть поток ввода файла в CipherInputStream или иным образом настраиваемый FilterInputStream, чтобы он расшифровывался при чтении. Не должно быть необходимости читать и расшифровывать весь файл в массив байтов, а затем читать его обратно.   -  person Mark Rotteveel    schedule 04.01.2019
comment
@ShubhamSahay Я не совсем понял, почему вы используете класс вывода (используемый для записи в потоки в вашем случае), чтобы читать материал. Когда я сказал использовать toByteArray, я имел в виду предоставить вам данные, которые он содержит, чтобы вы могли использовать его во входном классе (используемом для чтения данных) по вашему выбору... Если вы не можете получить данные из него, вы можете получить его из переменной outputBytes в вашем коде.   -  person Leonardo Alves Machado    schedule 04.01.2019
comment
@LeonardoAlvesMachado спасибо за предложение, постараюсь поделиться своим снова, если у меня возникнут трудности.   -  person Shubham Sahay    schedule 07.01.2019
comment
@MarkRotteveel Я тоже пытался это сделать, но почему-то не смог. попробую еще раз   -  person Shubham Sahay    schedule 07.01.2019


Ответы (1)


Чтобы прочитать byte[], вы можете использовать

ByteArrayInputStream in = new ByteArrayInputStream(outputBytes);

и чтобы прочитать это как строки текста, вы можете использовать

BufferedReader br = new BufferedReader(new InputStreamReader(in));
for (String line; (line = br.readLine()) != null; ) {
    // do something with the line
}
person Peter Lawrey    schedule 04.01.2019