Резюме: Имайки байтово изображение на a.zip
, което съдържа a.txt
, как мога да получа чист и правилен четец, който връща редове от текстовия файл?
Изтеглям изображението на zip файл от уеб услуга в byte[] content
. Бих искал да напиша метод като
private BufferedReader contentToBufferedReader(byte[] content)
това ще върне четец, който може да се използва като
reader = contentToBufferedReader(content);
while ((line = reader.readLine()) != null) {
processThe(line);
}
reader.close()
Досега имам (актуализиран)
private BufferedReader contentToBufferedReader(byte[] content) {
ByteArrayInputStream bais = new ByteArrayInputStream(content);
ZipInputStream zipStream = new ZipInputStream(bais);
BufferedReader reader = null;
try {
ZipEntry entry = zipStream.getNextEntry();
// I need only the first (and the only) entry from the zip file.
if (entry != null) {
reader = new BufferedReader(new InputStreamReader(zipStream, "UTF-8"));
System.out.println("contentToBufferedReader(): success");
}
}
catch (IOException e) {
System.out.println("contentToBufferedReader(): failed...");
System.out.println(e.getMessage());
}
return reader;
}
Не съм сигурен как да затворя целия обект на потока, когато нещо се провали. Освен това не съм сигурен как да ги затворя, ако reader
е успешно върнат, използван и затворен.
zipStream
. Промених въпроса, така че да не се счита за дубликат на въпроса, който споменахте. - person pepr   schedule 08.10.2013