我注释了下面两句。
for (int i = 0; i < size; i++) 
out.println("Value at: " + i + " = " + victor.elementAt(i));

解决方案 »

  1.   

    运行结果:
    Entering try statement
    Closing PrintWriter
      

  2.   

    我注释了这两句,错误依旧。我全部贴出来吧:
    // Note: This class won't compile by design!
    // See ListOfNumbersDeclared.java or ListOfNumbers.java
    // for a version of this  class that will compile.
    import java.io.*;
    import java.util.Vector;public class ListOfNumbers {
        private Vector victor;
        private static final int size = 10;    public ListOfNumbers () {
            victor = new Vector(size);
            for (int i = 0; i < size; i++)
                victor.addElement(new Integer(i));
        }
        public void writeList() {
         try {
            PrintWriter out = new PrintWriter(new FileWriter("OutFile.txt"));
       
          for (int i = 0; i < size; i++)
               out.println("Value at: " + i + " = " + victor.elementAt(i));
         }catch (ArrayIndexOutOfBoundsException e) {
                System.err.println("Caught ArrayIndexOutOfBoundsException: " + e.getMessage());
            } catch (IOException e) {
                System.err.println("Caught IOException: " + e.getMessage());
            } finally {
                if ( out  != null) {
                    System.out.println("Closing PrintWriter");
                    out.close();
                } else {
                    System.out.println("PrintWriter not open");
                }
            }    }
    }
      

  3.   

    你的out是属于try里面的,所以finally读不了.改成class ListOfNumbers {
        private Vector victor;
        private static final int size = 10;    public ListOfNumbers() {
            victor = new Vector(size);
            for (int i = 0; i < size; i++)
                victor.addElement(new Integer(i));
        }    public void writeList() {
            PrintWriter out = null;
            try {
                out = new PrintWriter(new FileWriter("OutFile.txt"));            for (int i = 0; i < size; i++)
                    out.println("Value at: " + i + " = " + victor.elementAt(i));
            }
            catch (ArrayIndexOutOfBoundsException e) {
                System.err.println("Caught ArrayIndexOutOfBoundsException: " +
                                   e.getMessage());
            }
            catch (IOException e) {
                System.err.println("Caught IOException: " + e.getMessage());
            }
            finally {
                if (out != null) {
                    System.out.println("Closing PrintWriter");
                    out.close();
                }
                else {
                    System.out.println("PrintWriter not open");
                }
            }    }
    }