关于system.in close()方法和skip()
* DataInputStream DataOutputStream
*
*
*
* public static void aa()
{
InputStream in = System.in;
try {
int a=in.read();
in.skip(2);
in.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public static void bb()
{
InputStream in = System.in;
try {
int A = in.read();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
InputStream in = System.in;
in.close();在一个程序运行中不能关闭 ,若关闭出现:
* java.io.IOException: Stream closed
* at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
* at java.io.BufferedInputStream.fill(Unknown Source)
* at java.io.BufferedInputStream.read(Unknown Source)
* at homework.Demo3.bb(Demo3.java:32)
* at homework.Demo3.main(Demo3.java:13)
*
* 原因:System.class 下:public final static InputStream in = nullInputStream();静态
*
*
* slip(n) 如果n>输入的长度则 n=输入的长度
* public long skip(long n) throws IOException {
long remaining = n;
int nr;
if (n <= 0) {
return 0;
}
int size = (int)Math.min(MAX_SKIP_BUFFER_SIZE, remaining);
byte[] skipBuffer = new byte[size];
while (remaining > 0) {
nr = read(skipBuffer, 0, (int)Math.min(size, remaining));
if (nr < 0) {
break;
}
remaining -= nr;
}
return n - remaining;
}