JAVA:使用StringTokenizer读取文本和获取元素

时间:2014-12-12 15:30:53

标签: java stringtokenizer

我遇到了错误问题!我打开我的文件,我读了一行,然后我从StringTokenizer的行中获取信息

我的代码可以使用一行,但是当我尝试阅读另一行时,我得到了任何帮助的错误?

这是我的代码

try{

    line = reader.readLine();

        while(line!=null){
            StringTokenizer st = new StringTokenizer(line,"\t");

             timer=st.nextToken("\t");
             int Itimer=Integer.parseInt(timer);
            // System.out.println(Itimer);
             what_to_do=st.nextToken("\t");
            // System.out.print(what_to_do);
             flightnumber=st.nextToken();
        int  Iflightnumber=Integer.parseInt(flightnumber);
            // System.out.print(Iflightnumber);
             departure=st.nextToken("\t");
            // System.out.print(departure);
             flighttime=st.nextToken("\t");

         int Iflighttime=Integer.parseInt(flighttime);
        // System.out.print(Iflighttime);
             Key=new KeyFlight(Iflightnumber,Iflighttime);
             flight=new Flight(Key,true);
             if(what_to_do.equals("insert")){
            // System.out.print("worked");
             if(departure.equals("D")){
                 result=true;
             }else{result=false;}
             flight.setdeparture(result);//8a mporousa na kanw new flight alla gia e3ikonomisi to ekana me seter//
             EV.insert(flight);
            // System.out.println("worked again");


             }else if(what_to_do.equals("cancel")){
                 EV.remove(Key);
                                 }
             else if(what_to_do.equals("update")){
                 EV.UpdateKey(flight, Key);
             }
            line=reader.readLine();

这些是错误线程中的异常" main" java.util.NoSuchElementException     at java.util.StringTokenizer.nextToken(Unknown Source)     at java.util.StringTokenizer.nextToken(Unknown Source)     在FlightSchedule.loadandStoreFile(FlightSchedule.java:54)     在FlightSchedule.main(FlightSchedule.java:13)

我写的不是最后一个reader.readLine(),line = null而且它起作用了

代码可以解决它的StringTokenizer问题

我的txt格式的

考试 0 insert 370 D 425

1 个答案:

答案 0 :(得分:1)

问题可能是,你正在寻找你的stringTokenizer上的标签“\ t”,也许你的数据之间的空间不是一个标签只是一个空格,试试更好的line.split(“\ s +”)