2012-07-09 3 views
3

Je cherchais quelque chose à propos de la lecture des archives zip via RandomAccessFile. Donc, j'ai trouvé cet exemple: Cependant, cela ne fonctionne pas pour moi, il dit qu'il n'y a pas un tel fichier ou répertoire, mais le chemin du fichier est correct. Cet exemple est-il incorrect?RandomAccessFile de ZipEntry (java)

UPDATE: de docs.oracle.com:

RandomAccessFile(String name, String mode)

crée un flux de fichier à accès aléatoire pour lire et, éventuellement, d'écrire dans un fichier avec le nom spécifié.

Il est bizarre qu'ils essaient de créer RAF avec NomEntrée comme paramètre « name » dans cet exemple

Il y a un autre exemple avec la même chose: http://www.java-tips.org/java-se-tips/java.util.zip/how-to-read-files-within-a-zip-file-3.html

+1

Il me semble beaucoup plus probable que vous ayez * réellement * obtenu le mauvais nom de fichier - probablement à partir de backslashes sans échappement. Avez-vous changé le code * du tout *? –

+0

Non, j'ai juste changé cette chaîne 'ZipInputStream zipinputstream = new ZipInputStream (nouveau FileInputStream (" nomfichier "));' - au lieu de 'filename 'j'ai mis'/home/123456/archive.zip' – user1049280

+0

J'ai une question mise à jour – user1049280

Répondre

3

Je pense que cela est un cas où Le code non filtré se termine sur les internets et ne cause pas de problèmes.

Il est impossible que le code de ces deux exemples fasse quoi que ce soit d'utile. La seule façon que le code ferait n'importe quoi est si le contenu du fichier zip avait déjà été extrait dans le dossier qui contient le zip. Long et court: vous ne pouvez pas utiliser RAF avec ZipEntry car ZipEntry fait référence à un flux crypté. Vous ne pouvez pas faire un accès aléatoire sur un flux (sauf si vous mettez en mémoire tampon le tout).

Ce qui me intéresse vraiment comment:

a) le code dans l'article java-tips ne suit pas les conventions de nommage appropriées pour Java b) le code dans les deux articles est étonnamment similaire

Voilà Exemple de code qui montre comment utiliser correctement ZipInputStream: http://java.sun.com/developer/technicalArticles/Programming/compression/

Questions connexes