FileInputStream fis = new FileInputStream("d:\\temp.dat");
  dis = new DataInputStream(fis);
  Stack<Integer> stack = new Stack<Integer>();
  int available = dis.available();
  for(int i=0;i<(available/4);i++){
    stack.push(dis.readInt());
  }
  while(!stack.empty()){
  System.out.println(stack.pop());
    }
  
麻烦那位大哥可以给我解释下这段代码么?

解决方案 »

  1.   

    就是读d:\\temp.dat这个文件,完后把其中的整型数据依次压入一个名为stack的栈中,完后再依次出栈并打印出来
      

  2.   

    available  的作用呢?? 能否把压入的过程描述的详细些谢谢啦?
      

  3.   

    int available = dis.available(); 用一个INT型的变量来取出 dis中总共读了多少个字节
      

  4.   

    available 方法是返回可以不受阻塞地从此输入流中读取的字节数
      

  5.   

    available是返回这个输入流有多少可读的字节,由于readInt是每次读入4个字节(java中int为4个字节),所以循环的时候要把available除以4