在文件中使用nextLine()和nextToken方法

时间:2016-06-05 22:15:46

标签: java string file token

您好我正在开发一个简单的学生注册申请,要求用户提供学生信息并将其保存在文件中。该应用程序也用于咨询,删除和修改信息。所提供的信息包括每个学生都有的入学号码,学生姓名和学位。所有这些信息都保存在一个对象中,并写在文件的一行中。我在要求提供信息的方法上遇到了一些麻烦。让我们说我有一个学生的信息是" 33333 John Stevens Medicine"当我提供注册号码时,应用程序会返回文件中nextLine的信息。源代码如下:

String matricula= matriculafield.getText();
    Scanner fileIn;
    StringTokenizer st;
    try{
        fileIn = new Scanner(new FileReader("estudiantes.txt"));
        while(fileIn.hasNextLine())
        {
            st= new StringTokenizer(fileIn.nextLine());
            while(st.hasMoreTokens())
            {
                if(st.nextToken().equals(matricula))
                {
                          JOptionPane.showMessageDialog(this,fileIn.nextLine());
                }
            }


        }
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(this, "No se encontró al alumno");
    }

matricula是注册号,然后我将字符串分为标记,如果任何标记与matricula变量匹配,我应该得到该标记所在的行,但它会返回该文件的下一行。

我的代码出了什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

变化:

st= new StringTokenizer(fileIn.nextLine());

要:

String currentLine = fileIn.nextLine();
st= new StringTokenizer(currentLine);

然后改变:

JOptionPane.showMessageDialog(this,fileIn.nextLine());

要:

JOptionPane.showMessageDialog(this,currentLine);