| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |