6
6
7
7
public class BasicOutputBuffer extends OutputBuffer {
8
8
9
+ @ Override
9
10
public void write (byte [] b ){
10
11
write ( b , 0 , b .length );
11
12
}
12
13
14
+ @ Override
13
15
public void write (byte [] b , int off , int len ){
14
16
_ensure ( len );
15
17
System .arraycopy ( b , off , _buffer , _cur , len );
16
18
_cur += len ;
17
19
_size = Math .max ( _cur , _size );
18
20
}
21
+ @ Override
19
22
public void write (int b ){
20
23
_ensure (1 );
21
24
_buffer [_cur ++] = (byte )(0xFF &b );
22
25
_size = Math .max ( _cur , _size );
23
26
}
24
27
28
+ @ Override
25
29
public int getPosition (){
26
30
return _cur ;
27
31
}
32
+ @ Override
28
33
public void setPosition ( int position ){
29
34
_cur = position ;
30
35
}
31
36
37
+ @ Override
32
38
public void seekEnd (){
33
39
_cur = _size ;
34
40
}
41
+ @ Override
35
42
public void seekStart (){
36
43
_cur = 0 ;
37
44
}
38
45
39
46
/**
40
47
* @return size of data so far
41
48
*/
49
+ @ Override
42
50
public int size (){
43
51
return _size ;
44
52
}
45
53
46
54
/**
47
55
* @return bytes written
48
56
*/
57
+ @ Override
49
58
public int pipe ( OutputStream out )
50
59
throws IOException {
51
60
out .write ( _buffer , 0 , _size );
52
61
return _size ;
53
62
}
63
+ /**
64
+ * @return bytes written
65
+ */
66
+ public int pipe ( DataOutput out )
67
+ throws IOException {
68
+ out .write ( _buffer , 0 , _size );
69
+ return _size ;
70
+ }
71
+
54
72
55
73
void _ensure ( int more ){
56
74
final int need = _cur + more ;
@@ -66,10 +84,12 @@ void _ensure( int more ){
66
84
_buffer = n ;
67
85
}
68
86
87
+ @ Override
69
88
public String asString (){
70
89
return new String ( _buffer , 0 , _size );
71
90
}
72
91
92
+ @ Override
73
93
public String asString ( String encoding )
74
94
throws UnsupportedEncodingException {
75
95
return new String ( _buffer , 0 , _size , encoding );
0 commit comments