2012-08-23 7 views
5

mam Object jakJava plik zip utworzony, ale nie otwarcie mówi nieoczekiwany koniec pliku

private String name; 
private int age; 
private String country; 
// getters and setters 

i funkcje są

protected void write(@Nonnull final Document document, @Nonnull final OutputStream stream) throws PersistenceException { 
     try { 
      jaxbContext.createMarshaller().marshal(document, stream); 
     } catch (final JAXBException e) { 
      LOGGER.error(e.getMessage(), e); 
      throw new PersistenceException("Failed to marshall document " + docment.getUniqueId() + ": " + e.getMessage(), e); 
     } 
    } 

przekonwertować to do zip pliku jako

  ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
      write(document, stream); 
      GZIPOutputStream gzipOutputStream = new GZIPOutputStream(new FileOutputStream(new File(getOutputFilePath(document.getUniqueId())))); 
      gzipOutputStream.write(stream.toByteArray()); 

Spowoduje to utworzenie pliku zip, ale gdy spróbuję go otworzyć, pojawi się komunikat:

gzip: document.xml.gz: unexpected end of file 

Co ja tu nie robię?

+3

Czy zamknąć otwarte strumienia wyjściowego gzip? – gkuzmin

+0

to było to, zrobiłem 'flush()' i 'close()' i działało, dziękuję za wskazanie, że na zewnątrz – daydreamer

Odpowiedz

11

Musisz upewnić zadzwonić:

gzipOutputStream.flush(); 

i ostatecznie

gzipOutputStream.close(); 
+0

dodałem, że i działało dziękuję @ Jon – daydreamer

Powiązane problemy