我写了这样的代码:
if(read.readLine().equals("com"))
         {
         ComSql cs=new ComSql();
         Statement st=cs.init(conn);
         String a=new String();
         a=read.readLine();
         System.out.println(a);
         if(a.equals("insert"))
         {
         cs.insert(st);
         }
         else if(a.equals("delete"))
         {
         cs.delete(st);
         } 
为什么在同一个BufferedReader对象上调用readLine()方法只有第一次能读到值第2次好象什么也没有读到?

解决方案 »

  1.   

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Vector;class bufferedReader {//利用vector,v.elementAt()找需要的行。  public static void main(String[] args) {
        try {
          File file = new File("D:/java test/BufferedReader/temp.txt");
          BufferedReader in = new BufferedReader((new FileReader(file)));
          String s = "";
      String foundline="sadf";
          StringBuffer str = new StringBuffer();
          Vector v = new Vector();      while ((s = in.readLine()) != null) {
            v.addElement(s);
          }      in.close();
          for (int i = 0; i < v.size(); i++) {
            //System.out.println((String) v.elementAt(i));
    if(v.elementAt(i).equals(foundline)){System.out.println(i);break;}
          }
        } catch (FileNotFoundException e) {
          System.out.println("file");
        } catch (IOException e) {
          System.out.println("IO");
        }
      }
    }
      

  2.   

    为什么不能两次调用readLine方法呢