home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / FileInput.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-18  |  1.9 KB  |  139 lines

  1. package com.sfs.iavazip.viewer;
  2.  
  3. import java.awt.Image;
  4. import java.io.DataInputStream;
  5. import java.io.IOException;
  6.  
  7. public class FileInput {
  8.    private byte[] buffer = new byte[4];
  9.    private DataInputStream data;
  10.    private boolean intelSwitch;
  11.  
  12.    public final void skipBytes(int var1) throws IOException {
  13.       this.data.skip((long)var1);
  14.    }
  15.  
  16.    public final void close() throws IOException {
  17.       this.data.close();
  18.    }
  19.  
  20.    public final long read32Bit() throws IOException {
  21.       long var1 = 0L;
  22.       int var3 = 0;
  23.       int var4 = 0;
  24.       int var5 = 0;
  25.       int var6 = 0;
  26.       this.data.read(this.buffer, 0, 4);
  27.       var3 = this.buffer[0] & 255;
  28.       var4 = this.buffer[1] & 255;
  29.       var5 = this.buffer[2] & 255;
  30.       var6 = this.buffer[3] & 255;
  31.       if (this.intelSwitch) {
  32.          var1 = (long)((var6 << 24) + (var5 << 16));
  33.          var1 += (long)((var4 << 8) + var3);
  34.       } else {
  35.          var1 = (long)((var3 << 24) + (var4 << 16));
  36.          var1 += (long)((var5 << 8) + var6);
  37.       }
  38.  
  39.       return var1;
  40.    }
  41.  
  42.    public final int readByte() throws IOException {
  43.       int var1 = 0;
  44.       this.data.read(this.buffer, 0, 1);
  45.       var1 = this.buffer[0] & 255;
  46.       return var1;
  47.    }
  48.  
  49.    public final int read16Bit() throws IOException {
  50.       int var1 = 0;
  51.       this.data.read(this.buffer, 0, 2);
  52.       var1 = ((this.buffer[0] & 255) << 8) + (this.buffer[1] & 255);
  53.       return this.intelSwitch ? (int)this.switchEndianOrder((long)var1) : var1;
  54.    }
  55.  
  56.    public final int available() throws IOException {
  57.       return this.data.available();
  58.    }
  59.  
  60.    private final long switchEndianOrder(long var1) {
  61.       long var3 = var1 & -1L;
  62.       long var5 = var3 & 255L;
  63.       long var7 = var3 >> 8 & 255L;
  64.       long var9 = var3 >> 16 & 255L;
  65.       long var11 = var3 >> 24 & 255L;
  66.       return (var9 << 24) + (var11 << 16) + (var5 << 8) + var7;
  67.    }
  68.  
  69.    public final byte[] readBytes(int var1, ProgressStatus var2) throws IOException {
  70.       byte[] var3 = new byte[var1];
  71.       int var4 = var1;
  72.       int var5 = 0;
  73.       int var6 = 0;
  74.       int var7 = 1;
  75.  
  76.       for(int var8 = 0; var4 > 0; var4 -= var7) {
  77.          var5 = this.data.available();
  78.          if (var5 > var4) {
  79.             var5 = var4;
  80.          }
  81.  
  82.          var7 = this.data.read(var3, var6, var5);
  83.          if (var7 == -1) {
  84.             var4 = 0;
  85.             Thread.yield();
  86.          }
  87.  
  88.          var6 += var7;
  89.          var8 = var6 * 100 / var1;
  90.          var2.imageLoaded(var8, (Image)null, " ");
  91.       }
  92.  
  93.       return var3;
  94.    }
  95.  
  96.    public final byte[] readBytes(int var1) throws IOException {
  97.       byte[] var2 = new byte[var1];
  98.       int var3 = var1;
  99.       int var4 = 0;
  100.       int var5 = 0;
  101.  
  102.       int var8;
  103.       for(var8 = 1; var3 > 0; var3 -= var8) {
  104.          var4 = this.data.available();
  105.          if (var4 > var1) {
  106.             var4 = var1;
  107.          }
  108.  
  109.          var8 = this.data.read(var2, var5, var4);
  110.          if (var8 < var4) {
  111.             var3 = 0;
  112.             Thread.yield();
  113.          }
  114.  
  115.          var5 += var8;
  116.       }
  117.  
  118.       return var2;
  119.    }
  120.  
  121.    public final void setIntelSwitch(boolean var1) {
  122.       this.intelSwitch = var1;
  123.    }
  124.  
  125.    public final void use(DataInputStream var1) throws IOException {
  126.       this.data = var1;
  127.    }
  128.  
  129.    public final String readString(int var1) throws IOException {
  130.       char[] var2 = new char[var1];
  131.  
  132.       for(int var3 = 0; var3 < var1; ++var3) {
  133.          var2[var3] = (char)this.data.read();
  134.       }
  135.  
  136.       return String.copyValueOf(var2);
  137.    }
  138. }
  139.