日期:2014-05-20  浏览次数:20721 次

请教一个简单问题
char   ch2   =   0;
try   {
ch2   =   (char)   System.in.read();
System.in.skip(2);
}   catch   (IOException   z)   {
}
这里调用sKip方法有什么用啊?英文的api说明看不懂

------解决方案--------------------
Skips over and discards n bytes of data from this input stream
-------------------------
从这个流跳过并且丢弃N个byte的数据

for example:

char ch2 = (char) System.in.read();
System.in.skip(2);
ch2 = (char) System.in.read();
ch2 = (char) System.in.read();
System.out.println(ch2);

输入12345回车
结果是5

------解决方案--------------------
System.in返回InputStream然后是它的skip方法
public long skip(long n)
throws IOException跳过和放弃此输入流中的 n 个数据字节。出于各种原因,该 skip 方法跳过某些较小的字节数(可能是 0)后结束。这可能由多种条件引起;在跳过 n 个字节之前已到达文件的末尾只是其中的一种可能。返回跳过的实际字节数。如果 n 为负,则不跳过任何字节。
InputStream 的 skip 方法创建字节数组,然后重复向其读入,直到读够 n 个字节或已到达流的末尾为止。建议让子类提供此方法的更有效的实现。


参数:
n - 要跳过的字节数。
返回:
跳过的实际字节数。
抛出:
IOException - 如果发生 I/O 错误。

--------------------------------------------