Lit un fichier Zip et le convertit directement en chaîne.
La méthode readAllBytes de la classe InputStream est utilisée pour la lecture. C'est très pratique car il lit tous les octets à la fois.
Cependant, selon la référence, «Notez que cette méthode est utilisée dans un cas simple où il est pratique de lire tous les octets dans un tableau d'octets, car il lit un flux d'entrée avec une grande quantité de données. Ce n'est pas celui-là. "
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 = "Spécifiez le chemin du fichier Zip ici";
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(filePath)));
//Répétez tant qu'il y a un fichier dans le fichier zip
while(zis.getNextEntry() !=null){
String str = new String(zis.readAllBytes());
//Sortie pour le moment
System.out.println(str);
}
zis.close();
}
}
Pour référence, je vais également inclure le code à lire petit à petit.
Sample.java
String filePath = "Spécifiez le chemin du fichier Zip à lire ici";
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(filePath)));
String str = null;
byte[] tempBuffer = new byte[1024];//Nombre d'octets à lire à la fois
ByteArrayOutputStream streamBuilder = null;
int bytesRead;
//Répétez tant qu'il y a un fichier dans le fichier zip
while(zis.getNextEntry() !=null){
while ( (bytesRead = zis.read(tempBuffer)) != -1 ){
streamBuilder = new ByteArrayOutputStream();
streamBuilder.write(tempBuffer, 0, bytesRead);
}
//Convertir en chaîne
str = streamBuilder.toString("UTF-8");
System.out.println(str);
}
zis.close();