Liest eine Zip-Datei und konvertiert sie direkt in eine Zeichenfolge.
Die readAllBytes-Methode der InputStream-Klasse wird zum Lesen verwendet. Es ist sehr praktisch, weil alle Bytes gleichzeitig gelesen werden.
Gemäß der Referenz "Beachten Sie jedoch, dass diese Methode in einem einfachen Fall verwendet wird, in dem es zweckmäßig ist, alle Bytes in ein Byte-Array zu lesen, da sie einen Eingabestream mit einer großen Datenmenge liest. Es ist nicht der eine. "
Unzip.java
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.zip.ZipInputStream;
public class Unzip{
public static void main(String[] args) throws Exception {
String filePath = "Geben Sie hier den Pfad der Zip-Datei an";
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(filePath)));
//Wiederholen Sie diesen Vorgang, solange sich eine Datei in der Zip-Datei befindet
while(zis.getNextEntry() !=null){
String str = new String(zis.readAllBytes());
//Ausgabe vorerst
System.out.println(str);
}
zis.close();
}
}
Als Referenz werde ich auch den Code einfügen, der nach und nach gelesen werden soll.
Sample.java
String filePath = "Geben Sie den Pfad der Zip-Datei an, die hier gelesen werden soll";
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(filePath)));
String str = null;
byte[] tempBuffer = new byte[1024];//Anzahl der gleichzeitig zu lesenden Bytes
ByteArrayOutputStream streamBuilder = null;
int bytesRead;
//Wiederholen Sie diesen Vorgang, solange sich eine Datei in der Zip-Datei befindet
while(zis.getNextEntry() !=null){
while ( (bytesRead = zis.read(tempBuffer)) != -1 ){
streamBuilder = new ByteArrayOutputStream();
streamBuilder.write(tempBuffer, 0, bytesRead);
}
//In String konvertieren
str = streamBuilder.toString("UTF-8");
System.out.println(str);
}
zis.close();
Recommended Posts