system.tmpfile = function() {
var d = new Date();
var r = String(Math.random()).replace(/\./,'');;
var n = '/tmp/tmp-' + r + '-' + d.valueOf();
var s = new Stream( n, 'w+' );
return s;
}
Stream.prototype.readBinBoundary = function( boundary ) {
var tmp_file = system.tmpfile();
var tmp_name = tmp_file.name;
this.readUntilBytes( boundary, tmp_file );
tmp_file.close();
return (tmp_name);
}
Stream.prototype.readlnBoundary = function( boundary ) {
var tmp_name = this.readBinBoundary( boundary );
var ln_stream = new Stream( tmp_name );
var ln_text = ln_stream.readFile();
ln_stream.close();
system.remove( tmp_name );
return ln_text;
} Is an unbounded auto-extending memory stream.