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

  1. package java.io;
  2.  
  3. public class StringReader extends Reader {
  4.    private String str;
  5.    private int length;
  6.    private int next;
  7.    private int mark;
  8.  
  9.    public StringReader(String var1) {
  10.       this.str = var1;
  11.       this.length = var1.length();
  12.    }
  13.  
  14.    private void ensureOpen() throws IOException {
  15.       if (this.str == null) {
  16.          throw new IOException("Stream closed");
  17.       }
  18.    }
  19.  
  20.    public int read() throws IOException {
  21.       Object var2 = super.lock;
  22.       synchronized(var2){}
  23.  
  24.       int var1;
  25.       try {
  26.          this.ensureOpen();
  27.          if (this.next < this.length) {
  28.             var1 = this.str.charAt(this.next++);
  29.             return var1;
  30.          }
  31.  
  32.          var1 = -1;
  33.       } catch (Throwable var5) {
  34.          throw var5;
  35.       }
  36.  
  37.       return var1;
  38.    }
  39.  
  40.    public int read(char[] var1, int var2, int var3) throws IOException {
  41.       Object var5 = super.lock;
  42.       synchronized(var5){}
  43.  
  44.       int var4;
  45.       try {
  46.          this.ensureOpen();
  47.          if (this.next < this.length) {
  48.             int var7 = Math.min(this.length - this.next, var3);
  49.             this.str.getChars(this.next, this.next + var7, var1, var2);
  50.             this.next += var7;
  51.             var4 = var7;
  52.             return var4;
  53.          }
  54.  
  55.          var4 = -1;
  56.       } catch (Throwable var9) {
  57.          throw var9;
  58.       }
  59.  
  60.       return var4;
  61.    }
  62.  
  63.    public long skip(long var1) throws IOException {
  64.       Object var5 = super.lock;
  65.       synchronized(var5){}
  66.  
  67.       long var3;
  68.       try {
  69.          this.ensureOpen();
  70.          if (this.next < this.length) {
  71.             long var7 = Math.min((long)(this.length - this.next), var1);
  72.             this.next = (int)((long)this.next + var7);
  73.             var3 = var7;
  74.             return var3;
  75.          }
  76.  
  77.          var3 = 0L;
  78.       } catch (Throwable var10) {
  79.          throw var10;
  80.       }
  81.  
  82.       return var3;
  83.    }
  84.  
  85.    public boolean ready() {
  86.       return true;
  87.    }
  88.  
  89.    public boolean markSupported() {
  90.       return true;
  91.    }
  92.  
  93.    public void mark(int var1) throws IOException {
  94.       Object var2 = super.lock;
  95.       synchronized(var2){}
  96.  
  97.       try {
  98.          this.ensureOpen();
  99.          this.mark = this.next;
  100.       } catch (Throwable var4) {
  101.          throw var4;
  102.       }
  103.  
  104.    }
  105.  
  106.    public void reset() throws IOException {
  107.       Object var1 = super.lock;
  108.       synchronized(var1){}
  109.  
  110.       try {
  111.          this.ensureOpen();
  112.          this.next = this.mark;
  113.       } catch (Throwable var3) {
  114.          throw var3;
  115.       }
  116.  
  117.    }
  118.  
  119.    public void close() {
  120.       this.str = null;
  121.    }
  122. }
  123.