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

  1. package java.io;
  2.  
  3. public class LineNumberReader extends BufferedReader {
  4.    private int lineNumber;
  5.    private int markedLineNumber;
  6.    private boolean skipLF;
  7.    private static final int maxSkipBufferSize = 8192;
  8.    private char[] skipBuffer;
  9.  
  10.    public LineNumberReader(Reader var1) {
  11.       super(var1);
  12.    }
  13.  
  14.    public LineNumberReader(Reader var1, int var2) {
  15.       super(var1, var2);
  16.    }
  17.  
  18.    public void setLineNumber(int var1) {
  19.       this.lineNumber = var1;
  20.    }
  21.  
  22.    public int getLineNumber() {
  23.       return this.lineNumber;
  24.    }
  25.  
  26.    public int read() throws IOException {
  27.       Object var2 = super.lock;
  28.       synchronized(var2){}
  29.  
  30.       int var1;
  31.       try {
  32.          int var4 = super.read();
  33.          if (this.skipLF) {
  34.             if (var4 == 10) {
  35.                var4 = super.read();
  36.             }
  37.  
  38.             this.skipLF = false;
  39.          }
  40.  
  41.          switch (var4) {
  42.             case 10:
  43.                break;
  44.             case 13:
  45.                this.skipLF = true;
  46.                break;
  47.             default:
  48.                var1 = var4;
  49.                return var1;
  50.          }
  51.  
  52.          ++this.lineNumber;
  53.          var1 = 10;
  54.       } catch (Throwable var6) {
  55.          throw var6;
  56.       }
  57.  
  58.       return var1;
  59.    }
  60.  
  61.    public int read(char[] var1, int var2, int var3) throws IOException {
  62.       Object var5 = super.lock;
  63.       synchronized(var5){}
  64.  
  65.       int var4;
  66.       try {
  67.          int var7 = super.read(var1, var2, var3);
  68.  
  69.          for(int var8 = var2; var8 < var2 + var3; ++var8) {
  70.             char var9 = var1[var8];
  71.             if (this.skipLF) {
  72.                this.skipLF = false;
  73.                if (var9 == '\n') {
  74.                   continue;
  75.                }
  76.             }
  77.  
  78.             switch (var9) {
  79.                case '\r':
  80.                   this.skipLF = true;
  81.                case '\n':
  82.                   ++this.lineNumber;
  83.             }
  84.          }
  85.  
  86.          var4 = var7;
  87.       } catch (Throwable var11) {
  88.          throw var11;
  89.       }
  90.  
  91.       return var4;
  92.    }
  93.  
  94.    public String readLine() throws IOException {
  95.       Object var2 = super.lock;
  96.       synchronized(var2){}
  97.  
  98.       String var1;
  99.       try {
  100.          String var4 = super.readLine();
  101.          if (var4 != null) {
  102.             ++this.lineNumber;
  103.          }
  104.  
  105.          this.skipLF = false;
  106.          var1 = var4;
  107.       } catch (Throwable var6) {
  108.          throw var6;
  109.       }
  110.  
  111.       return var1;
  112.    }
  113.  
  114.    public long skip(long var1) throws IOException {
  115.       int var3 = (int)Math.min(var1, 8192L);
  116.       Object var6 = super.lock;
  117.       synchronized(var6){}
  118.  
  119.       long var4;
  120.       try {
  121.          if (this.skipBuffer == null || this.skipBuffer.length < var3) {
  122.             this.skipBuffer = new char[var3];
  123.          }
  124.  
  125.          long var8;
  126.          int var10;
  127.          for(var8 = var1; var8 > 0L; var8 -= (long)var10) {
  128.             var10 = this.read(this.skipBuffer, 0, var3);
  129.             if (var10 == -1) {
  130.                break;
  131.             }
  132.          }
  133.  
  134.          var4 = var1 - var8;
  135.       } catch (Throwable var12) {
  136.          throw var12;
  137.       }
  138.  
  139.       return var4;
  140.    }
  141.  
  142.    public void mark(int var1) throws IOException {
  143.       Object var2 = super.lock;
  144.       synchronized(var2){}
  145.  
  146.       try {
  147.          super.mark(var1);
  148.          this.markedLineNumber = this.lineNumber;
  149.       } catch (Throwable var4) {
  150.          throw var4;
  151.       }
  152.  
  153.    }
  154.  
  155.    public void reset() throws IOException {
  156.       Object var1 = super.lock;
  157.       synchronized(var1){}
  158.  
  159.       try {
  160.          super.reset();
  161.          this.lineNumber = this.markedLineNumber;
  162.       } catch (Throwable var3) {
  163.          throw var3;
  164.       }
  165.  
  166.    }
  167. }
  168.