1 29 30 package com.caucho.quercus.env; 31 32 import java.io.InputStream ; 33 34 37 public class StringInputStream extends InputStream { 38 private final String _string; 39 private final int _length; 40 41 private int _index; 42 43 public StringInputStream(String s) 44 { 45 _string = s; 46 _length = s.length(); 47 } 48 49 public int read() 50 { 51 if (_index < _length) 52 return _string.charAt(_index++); 53 else 54 return -1; 55 } 56 57 public int read(byte []buffer, int offset, int length) 58 { 59 int sublen = _length - _index; 60 61 if (sublen == 0) 62 return -1; 63 64 if (length < sublen) 65 sublen = length; 66 67 String s = _string; 68 int index = _index; 69 70 for (int i = 0; i < sublen; i++) { 71 buffer[offset + i] = (byte) s.charAt(index + i); 72 } 73 74 _index = index + sublen; 75 76 return sublen; 77 } 78 } 79 80 | Popular Tags |