有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAutil。NoSuchElementException:null(在java.util.StringTokenizer中)

我试图从序列化文件读取数据,但它给了我一个错误

java.util.NoSuchElementException:null(in java.util.StringTokenizer)

你能帮助我吗

import java.io.*; 
import java.util.*;
public class SerialFile {

    public static void main(String[]args)
    {


        String  name=" ";
        int  studNumber=0;
        int loanAmount=0;
        String degree=" ";


        try
        {
            ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("student.ser"));  

            out.writeObject("Jon Smith#123456#12000");
            out.writeObject("Mary Jones#023456#10000#BSc");
            out.writeObject("Sam Snead#654321#15000");
            out.writeObject("Tommy Adams#723456#10000#BCom");  
            out.close();

            ObjectInputStream in=new ObjectInputStream(new FileInputStream("student.ser"));

            while(true)
            {
                String  stud=(String)in.readObject();
                StringTokenizer token=new StringTokenizer(stud,"#");

                name=token.nextToken();
                studNumber=Integer.parseInt(token.nextToken());
                loanAmount=Integer.parseInt(token.nextToken());
                degree=token.nextToken();

                System.out.println(name+studNumber+loanAmount+degree);
            }


        }
        catch(IOException ioe)
        {
            System.out.println("Exception: "+ioe.getMessage());
        }

        catch(ClassNotFoundException cnfe)
        {
            System.out.println("Exception: "+cnfe.getMessage());
        }

    }
}

共 (1) 个答案

  1. # 1 楼答案

    if(token.hasMoreTokens())
        degree=token.nextToken();
    

    乔恩·史密斯没有学位。所以发生了异常。在获得学位之前,请检查hasMoreTokens()