Есть архив в нем набор файлов, надо считать файлы из архива и выборочно брать один из них, разархивировать архив на диск не нужно, хотел подгружать отдельные файлы в потоки и потом с ними работать.
Что пробовал:
ZipFile zf=new ZipFile("src/pack/text.zip") //загружал архив
Enumeration entries = zf.entries()//собирал список файлов
while(entries.hasMoreElements()) { //проходил по всем элементам архива
ZipEntry entry=(ZipEntry)entries.nextElement();//брал отдельный файл
InputStream stream=new InputStream()//создавал поток
stream=zf.getInputStream(entry);//пихал туда отдельный файл
Хотелось бы узнать, что записывается в потоки, только внутреннее файла?
Как дальше пользоваться записанными данными в поток?, т.е. как потом записать например в строку содержимое файла.
Читал о преобразованиях байтов, мало понятно, надо колдовать с кодировками
Чайник будет рад любой помощи
Основные шаги работы с потоками в Java: открыть поток на чтение/запись, прочитать его содержимое или записать нечто в поток, закрыть поток. Для более удобного чтения текстовых файлов InputStream с содержимым файла обычно оборачивают в BufferedReader или Scanner. Посмотрите пример чтения текстового файла на Java.
А вот так можно стандартными средствами Java получить содержимое InputStream целиком в виде строки:
private static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
Этот трюк заимствован из статьи "Stupid Scanner tricks". Его работа основана на том, что Scanner проходит по всему потоку разделяя его на части используя как разделитель "начало границы входного потока" ("beginning of the input boundary", \A), т.е. возвращает всё содержимое потока одним куском.
Обратите внимание, что можно указать используемую кодировку входного потока вторым аргументом в конструкторе Scanner (например, "UTF-8").
Сборка персонального компьютера от Artline: умный выбор для современных пользователей