/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Problemer med at læse en jar fil...
Fra : Brian Matzon


Dato : 20-04-01 08:58

Når jeg tager en JarEntry fra en JarOutputStream, returnerer den altid -1 i
dens størrelse?
Jeg har haft et lignende problem, hvis jeg åbner en jar fil med en
ZipInputStream, men det gør jeg ikke i dette tilfælde...

/Brian Matzon
--8<--8<--8<--8<--8<--8<

....

JarInputStream jarInputStream = new JarInputStream(new
BufferedInputStream(urlConnection.getInputStream()), true);
JarEntry jarEntry = null;

int bufferSize = 1024;
byte[] byteArray = new byte[bufferSize];

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
int readBytes;

while ((jarEntry = jarInputStream.getNextJarEntry()) != null) {
if (jarEntry.isDirectory()) {
continue;
}

//check for its size
int size = (int)jarEntry.getSize();
if(size == -1) {
System.err.println("Dropping " + jarEntry.getName() + ". Size
= -1");
continue;
}
....



 
 
nnnn (20-04-2001)
Kommentar
Fra : nnnn


Dato : 20-04-01 10:21


Brian Matzon wrote:

> Når jeg tager en JarEntry fra en JarOutputStream, returnerer den altid -1 i
> dens størrelse?
> Jeg har haft et lignende problem, hvis jeg åbner en jar fil med en
> ZipInputStream, men det gør jeg ikke i dette tilfælde...


Du kan ikke forvente at size er sat. Læs stream'en indtil end-of-stream.

Visse zip-programmer (bl.a. winzip) sætter størrelsen.

>
> /Brian Matzon
> --8<--8<--8<--8<--8<--8<
>
> ....
>
> JarInputStream jarInputStream = new JarInputStream(new
> BufferedInputStream(urlConnection.getInputStream()), true);
> JarEntry jarEntry = null;
>
> int bufferSize = 1024;
> byte[] byteArray = new byte[bufferSize];
>
> ByteArrayOutputStream bytes = new ByteArrayOutputStream();
> int readBytes;
>
> while ((jarEntry = jarInputStream.getNextJarEntry()) != null) {
> if (jarEntry.isDirectory()) {
> continue;
> }
>
> //check for its size
> int size = (int)jarEntry.getSize();
> if(size == -1) {
> System.err.println("Dropping " + jarEntry.getName() + ". Size
> = -1");
> continue;
> }
> ....
>
>


Brian Matzon (20-04-2001)
Kommentar
Fra : Brian Matzon


Dato : 20-04-01 11:56

> > Når jeg tager en JarEntry fra en JarOutputStream, returnerer den
altid -1 i
> > dens størrelse?
> > Jeg har haft et lignende problem, hvis jeg åbner en jar fil med en
> > ZipInputStream, men det gør jeg ikke i dette tilfælde...
>
>
> Du kan ikke forvente at size er sat. Læs stream'en indtil end-of-stream.

Ehm... Hvordan ved jeg så hvor meget jeg skal læse fra inputstreamen (der er
flere filer i Jar'en) ???

/Brian Matzon



Brian Matzon (20-04-2001)
Kommentar
Fra : Brian Matzon


Dato : 20-04-01 12:09

> Ehm... Hvordan ved jeg så hvor meget jeg skal læse fra inputstreamen (der
er
> flere filer i Jar'en) ???

My fault - man læser bare indtil man får end of stream, på den entry.

/Brian Matzon



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste