| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | L=E6s og skrivning af fil Fra : NB | 
  Dato :  09-06-04 15:26 |  
  |   
            Hejsa. Er der nogen som kan hjælpe mig med at læse en fil (tekst) og 
 skrive en fil (binær). Jeg har angivet med [1] samt kommentarer hvor jeg 
 ønsker at læse fil og med [2] samt kommentarer hvor jeg ønsker skrevet 
 fil.
 
 
 /* Indhold af unzip.file:
 <?xml version="1.0" encoding="iso-8859-1"?>
 <root>
   <elements>
     <element>111</element>
     <element>222</element>
     <element>333</element>
     <element>444</element>
     <element>555</element>
   </elements>
 </root>
 */
 import java.util.zip.Deflater;
 import java.util.zip.Inflater;
 import java.io.*;
 
 public class ZLib {
   ByteArrayOutputStream byteArrayOutputStream = new 
 ByteArrayOutputStream();
 
   // Pak.
   public void deflate() {
     try {
       // [1] HER KUNNE JEG GODT TÆNKE MIG, AT LÆSE FILEN UNZIP.FILE, SOM 
       // ER ET XML-DOKUMENT (SE FILENS STRUKTUR I ØVERSTE KOMMENTAR).
       // HAR FORSØGT MIG MED NEDENSTÅNDE, MEN AF EN ELLER ANDEN MÆRKELIG
       // ÅRSAG LÆSES KUN FØRSTE LINJE.
       FileReader fileReader = new FileReader("unzip.file");
       BufferedReader bufferedReader = new BufferedReader(fileReader);
 
       String fileString = "";
       StringBuffer stringBuffer = new StringBuffer();
 
       while ((fileString = bufferedReader.readLine()) != null) {
         stringBuffer.append(fileString);
       }
 
 /*    // BLEV ANVENDT TIL TEST.
       fileString =
         "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" +
         "<root>\n" +
         "  <elements>\n" +
         "    <element>111</element>\n" +
         "    <element>222</element>\n" +
         "    <element>333</element>\n" +
         "    <element>444</element>\n" +
         "    <element>555</element>\n" +
         "  </elements>\n" +
         "</root>";
 */
       byte[] buffer = new byte[5];
 
       Deflater deflater = new Deflater();
 // BLEV ANVENDT TIL TEST.
 //      deflater.setInput(fileString.getBytes());
       deflater.setInput(stringBuffer.toString().getBytes());
       deflater.finish();
 
       int deflated = 0;
       while (!deflater.finished()) {
         System.out.println("!deflater.finished");
         deflated = deflater.deflate(buffer);
         byteArrayOutputStream.write(buffer, 0, deflated);
       }
 
       System.out.println("deflater.In: " + deflater.getTotalIn());
       System.out.println("deflater.Out: " + deflater.getTotalOut());
       System.out.println(byteArrayOutputStream.toString());
 
       deflater.end();
 
       // [2] HER KUNNE JEG GODT TÆNKE MIG AT SKRIVE DET KOMPRIMEREDE    
       // DATA TIL FIL, MEN JEG HAR IKKE HELT STYR PÅ HVORDAN MAN SKRIVER   
       // EN BINÆR FIL. HAR FORSØGT MIG MED NOGET, MEN TROR AT DET VAR 
       // GALT, DA JEG SÅ IKKE KUNNE INDLÆSE FILEN I INFLATE.
     }
     catch (Exception e) {
       e.printStackTrace();
     }
   }
 
   // Udpak.
   public void inflate() {
     try {
       byte[] buffer = new byte[5];
 
       Inflater inflater = new Inflater();
       inflater.setInput(byteArrayOutputStream.toByteArray());
 
       byteArrayOutputStream.reset();
 
       int inflated = 0;
       while (!inflater.finished()) {
         System.out.println("!inflater.finished");
         inflated = inflater.inflate(buffer);
         byteArrayOutputStream.write(buffer);
       }
 
       System.out.println("inflater.In: " + inflater.getTotalIn());
       System.out.println("inflater.Out: " + inflater.getTotalOut());
 
       inflater.end();
 
       System.out.println(byteArrayOutputStream.toString());
     }
     catch (Exception e) {
       e.printStackTrace();
     }
   }
 }
 
 
  
            
             |   |   
            
        
 
            
         
           Mads Bahrt (09-06-2004) 
         
	
            | Kommentar Fra : Mads Bahrt | 
  Dato :  09-06-04 16:43 |  
  |   
            NB wrote:
 >       while ((fileString = bufferedReader.readLine()) != null) {
 >         stringBuffer.append(fileString);
 >       }
 
 Fra hoften og uden test, prøv med:
 
 while(bufferedReader.ready()){
    stringBuffer.append(bufferedReader.readLine());
 }
 
 MVH
 Mads
  
            
             |   |   
            
        
 
            
         
           Peter Kjellerup Rasm~ (09-06-2004) 
         
	
            | Kommentar Fra : Peter Kjellerup Rasm~ | 
  Dato :  09-06-04 21:02 |  
  |   
            NB wrote:
 > Hejsa. Er der nogen som kan hjælpe mig med at læse en fil (tekst) og
 >  skrive en fil (binær). Jeg har angivet med [1] samt kommentarer hvor
 > jeg ønsker at læse fil og med [2] samt kommentarer hvor jeg ønsker
 > skrevet fil.
 
 1) Dette virker fint. Dobbelt check om din fil rent faktisk er tom...
 
 2) Prøv med noget i denne retning:
          try {
              String fileString = "";
              String s = new String();
              FileReader fileReader = new FileReader("unzip.file");
              BufferedReader bufferedReader = new BufferedReader(fileReader);
              while ((fileString = bufferedReader.readLine()) != null) {
                  s += fileString;
              }
              System.err.println("string: " + s);
 
              DeflaterOutputStream out = new DeflaterOutputStream(new
 BufferedOutputStream(new FileOutputStream("file.gz")));
              out.write(s.getBytes(), 0, s.getBytes().length);
              out.finish();
              out.close();
 
              InflaterInputStream in = new InflaterInputStream(new
 BufferedInputStream(new FileInputStream("file.gz")));
              int b;
              ByteBuffer buf = ByteBuffer.allocate(1000);
              String unpack = new String();
              while ((b = in.available()) != 0) {
                  unpack += (char)in.read();
              }
              System.err.println("read data : " + unpack);
 
          } catch (Exception e) {
              e.printStackTrace();
          }
 
 
 -Peter
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |