system.in close()方法和skip()

来源:互联网 发布:nginx 判断请求参数 编辑:程序博客网 时间:2024/05/22 08:07
关于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;
      }

0 0