1 28 29 package com.caucho.eswrap.java.io; 30 31 import com.caucho.util.CharBuffer; 32 33 import java.io.IOException ; 34 import java.io.Reader ; 35 36 public class ReaderEcmaWrap { 37 public static int readByte(Reader is) 38 throws IOException 39 { 40 return is.read(); 41 } 42 43 public static String read(Reader is) 44 throws IOException 45 { 46 int ch = is.read(); 47 48 if (ch == -1) 49 return null; 50 51 return String.valueOf((char) ch); 52 } 53 54 public static String read(Reader is, int length) 55 throws IOException 56 { 57 CharBuffer bb = new CharBuffer(); 58 59 for (; length > 0; length--) { 60 int ch = is.read(); 61 62 if (ch == -1) 63 break; 64 65 bb.append((char) ch); 66 } 67 68 if (bb.length() == 0) 69 return null; 70 71 return bb.toString(); 72 } 73 74 public static String readln(Reader is) 75 throws IOException 76 { 77 CharBuffer bb = new CharBuffer(); 78 79 boolean hasCr = false; 80 boolean hasData = false; 81 while (true) { 82 int ch = is.read(); 83 84 if (ch == -1) 85 break; 86 else if (ch == '\n') { 87 hasData = true; 88 break; 89 } 90 else if (hasCr) { 91 hasData = true; 92 break; 93 } 94 95 if (ch == '\r') 96 hasCr = true; 97 else 98 bb.append((char) ch); 99 } 100 101 if (bb.length() == 0 && ! hasData) 102 return null; 103 104 return bb.toString(); 105 } 106 } 107 108 | Popular Tags |