Read N Characters Given Read4
给一个read4的方法, 求写一个read方法. 主要是判断两个情况, 第一个是读不够, 第二个是只读前n个. 读不够就返回当前的i. 读前n个需要判断当前的t和n-i的那个小.
/**
* The read4 API is defined in the parent class Reader4.
* int read4(char[] buf);
*/
public class Solution extends Reader4 {
/**
* @param buf Destination buffer
* @param n Number of characters to read
* @return The number of actual characters read
*/
public int read(char[] buf, int n) {
int i = 0;
char[] c = new char[4];
int t = 0;
do{
t = read4(c);
if(t <= 0)
break;
t = Math.min(t, n - i);
for(int j = 0; j < t; j++) {
buf[i++] = c[j];
}
}while(true);
return i;
}
}