05 August 2008
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public int read(char[] buf, int n) {
boolean eof = false; // end of file flag
int total = 0; // total bytes have read
char[] tmp = new char[4]; // temp buffer
while (!eof && total < n) {
int count = read4(tmp);
// check if it's the end of the file
eof = count < 4;
// get the actual count
count = Math.min(count, n - total);
// copy from temp buffer to buf
for (int i = 0; i < count; i++)
buf[total++] = tmp[i];
}
return total;
}
}