关于Readable的read方法
read()返回的是 int型,这个int表示什么?
当用Scanner.hasNext()时,是根据read的返回值来判断hasNext()的真假吗?
假如有以下程序:
import java.nio.*;
import java.util.*;
public class Test implements Readable {
private static final char[] chars =
"abcde".toCharArray();
private int count;
public Test(int count) { this.count = count; }
public int read(CharBuffer cb) {
if(count-- == 0)
return -1;
for(int i = 0; i < 5; i++) {
cb.append(chars[i]);
}
cb.append(" "); //这句有什么作用?
return 5; //这里改成return 3或2等正数,为什么程序的输出结果都是一样的呢?
}
public static void main(String[] args) {
Scanner s = new Scanner(new Test(5));
while(s.hasNext())
System.out.println(s.next());
}
}