/** * Writes to a stream. */ public int write(InputStream @is, int length) { int writeLength = 0; TempBuffer tb = TempBuffer.allocate(); byte [] buffer = tb.getBuffer(); try { while (length > 0) { int sublen; if (length < buffer.length) { sublen = length; } else { sublen = buffer.length; } sublen = @is.read(buffer, 0, sublen); if (sublen < 0) { break; } for (int offset = 0; offset < sublen;) { write(buffer, offset, sublen); if (_writeLength > 0) { offset += _writeLength; } else { return(writeLength); } } writeLength += sublen; length -= sublen; } return(writeLength); } catch (IOException e) { throw new QuercusModuleException(e); } finally { TempBuffer.free(tb); } }
/** * Read length bytes of data from the InputStream * argument and write them to this output stream. */ public int write(InputStream @is, int length) { int writeLength = 0; TempBuffer tb = TempBuffer.allocate(); byte [] buffer = tb.getBuffer(); try { while (length > 0) { int sublen; if (length < buffer.length) { sublen = length; } else { sublen = buffer.length; } sublen = @is.read(buffer, 0, sublen); if (sublen < 0) { break; } write(buffer, 0, sublen); writeLength += sublen; length -= sublen; } return(writeLength); } finally { TempBuffer.free(tb); } }
public override StringValue encode(StringValue sb, CharSequence str, int start, int end) { CharBuffer in = CharBuffer.wrap(str, start, end); TempBuffer tempBuf = TempBuffer.allocate(); try { ByteBuffer @out = ByteBuffer.wrap(tempBuf.getBuffer()); while (in.hasRemaining()) { CoderResult coder = _encoder.encode(in, @out, false); if (!fill(sb, in, @out, coder)) { return(sb); } @out.clear(); } CoderResult coder = _encoder.encode(in, @out, true); if (!fill(sb, in, @out, coder)) { return(sb); } @out.clear(); coder = _encoder.flush(out); fill(sb, in, @out, coder); return(sb); } finally { TempBuffer.free(tempBuf); } }
void writeData(Env env, OutputStream os) { TempBuffer tempBuf = null; try { tempBuf = TempBuffer.allocate(); byte [] buf = tempBuf.getBuffer(); ReadStream @is = _path.openRead(); int len; while ((len = @is.read(buf, 0, buf.length)) > 0) { os.write(buf, 0, len); } } finally { if (tempBuf != null) { TempBuffer.free(tempBuf); } } }