home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / io / CharArrayReader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  1.8 KB  |  152 lines

  1. package java.io;
  2.  
  3. public class CharArrayReader extends Reader {
  4.    protected char[] buf;
  5.    protected int pos;
  6.    protected int markedPos;
  7.    protected int count;
  8.  
  9.    public CharArrayReader(char[] var1) {
  10.       this.buf = var1;
  11.       this.pos = 0;
  12.       this.count = var1.length;
  13.    }
  14.  
  15.    public CharArrayReader(char[] var1, int var2, int var3) {
  16.       this.buf = var1;
  17.       this.pos = var2;
  18.       this.count = Math.min(var2 + var3, var1.length);
  19.    }
  20.  
  21.    private void ensureOpen() throws IOException {
  22.       if (this.buf == null) {
  23.          throw new IOException("Stream closed");
  24.       }
  25.    }
  26.  
  27.    public int read() throws IOException {
  28.       Object var2 = super.lock;
  29.       synchronized(var2){}
  30.  
  31.       int var1;
  32.       try {
  33.          this.ensureOpen();
  34.          if (this.pos < this.count) {
  35.             var1 = this.buf[this.pos++];
  36.             return var1;
  37.          }
  38.  
  39.          var1 = -1;
  40.       } catch (Throwable var5) {
  41.          throw var5;
  42.       }
  43.  
  44.       return var1;
  45.    }
  46.  
  47.    public int read(char[] var1, int var2, int var3) throws IOException {
  48.       Object var5 = super.lock;
  49.       synchronized(var5){}
  50.  
  51.       int var4;
  52.       try {
  53.          this.ensureOpen();
  54.          if (this.pos >= this.count) {
  55.             var4 = (byte)-1;
  56.             return var4;
  57.          }
  58.  
  59.          if (this.pos + var3 > this.count) {
  60.             var3 = this.count - this.pos;
  61.          }
  62.  
  63.          if (var3 > 0) {
  64.             System.arraycopy(this.buf, this.pos, var1, var2, var3);
  65.             this.pos += var3;
  66.             var4 = var3;
  67.             return var4;
  68.          }
  69.  
  70.          var4 = 0;
  71.       } catch (Throwable var8) {
  72.          throw var8;
  73.       }
  74.  
  75.       return var4;
  76.    }
  77.  
  78.    public long skip(long var1) throws IOException {
  79.       Object var5 = super.lock;
  80.       synchronized(var5){}
  81.  
  82.       long var3;
  83.       try {
  84.          this.ensureOpen();
  85.          if ((long)this.pos + var1 > (long)this.count) {
  86.             var1 = (long)(this.count - this.pos);
  87.          }
  88.  
  89.          if (var1 >= 0L) {
  90.             this.pos = (int)((long)this.pos + var1);
  91.             var3 = var1;
  92.             return var3;
  93.          }
  94.  
  95.          var3 = 0L;
  96.       } catch (Throwable var8) {
  97.          throw var8;
  98.       }
  99.  
  100.       return var3;
  101.    }
  102.  
  103.    public boolean ready() throws IOException {
  104.       Object var2 = super.lock;
  105.       synchronized(var2){}
  106.  
  107.       boolean var1;
  108.       try {
  109.          this.ensureOpen();
  110.          var1 = this.count - this.pos > 0;
  111.       } catch (Throwable var5) {
  112.          throw var5;
  113.       }
  114.  
  115.       return var1;
  116.    }
  117.  
  118.    public boolean markSupported() {
  119.       return true;
  120.    }
  121.  
  122.    public void mark(int var1) throws IOException {
  123.       Object var2 = super.lock;
  124.       synchronized(var2){}
  125.  
  126.       try {
  127.          this.ensureOpen();
  128.          this.markedPos = this.pos;
  129.       } catch (Throwable var4) {
  130.          throw var4;
  131.       }
  132.  
  133.    }
  134.  
  135.    public void reset() throws IOException {
  136.       Object var1 = super.lock;
  137.       synchronized(var1){}
  138.  
  139.       try {
  140.          this.ensureOpen();
  141.          this.pos = this.markedPos;
  142.       } catch (Throwable var3) {
  143.          throw var3;
  144.       }
  145.  
  146.    }
  147.  
  148.    public void close() {
  149.       this.buf = null;
  150.    }
  151. }
  152.