Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取文件以将其数据存储在数组中时出错_Java_Arrays_File_Stringtokenizer - Fatal编程技术网

Java 读取文件以将其数据存储在数组中时出错

Java 读取文件以将其数据存储在数组中时出错,java,arrays,file,stringtokenizer,Java,Arrays,File,Stringtokenizer,我正在写的程序是用Java编写的。我试图让我的程序读取文件“name.txt”,并将文本文件的值存储在数组中 到目前为止,我使用的是一个文本文件,它将在我的主程序中读取,一个名为People.java的服务类将用作我的程序的模板,我的主程序名为Names.java,它将读取文本文件并将其值存储到数组中 name.txt: John!Doe Jane!Doe Mike!Smith John!Smith George!Smith People.java: public class People {

我正在写的程序是用Java编写的。我试图让我的程序读取文件“name.txt”,并将文本文件的值存储在数组中

到目前为止,我使用的是一个文本文件,它将在我的主程序中读取,一个名为People.java的服务类将用作我的程序的模板,我的主程序名为Names.java,它将读取文本文件并将其值存储到数组中

name.txt:

John!Doe
Jane!Doe
Mike!Smith
John!Smith
George!Smith
People.java:

public class People
{
    String firstname = " ";
    String lastname = " ";

    public People()
    {
        firstname = "First Name";
        lastname = "Last Name";
    }

    public People(String firnam, String lasnam)
    {
        firstname = firnam;
        lastname = lasnam;
    }

    public String toString()
    {
        String str = firstname+" "+lastname;

        return str;
    }

} 
Names.java:

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Names
{
    public static void main(String[]args)
    {
        String a = " ";
        String b = "empty";
        String c = "empty";
        int counter = 0;


        People[]peoplearray=new People[5];

        try
        {
            File names = new File("name.txt");
            Scanner read = new Scanner(names);

            while(read.hasNext())
            {
                a = read.next();
                StringTokenizer token = new StringTokenizer("!", a);

                while(token.hasMoreTokens())
                {
                b = token.nextToken();
                c = token.nextToken();
                People p = new People(b,c);
                peoplearray[counter]=p;
                ++counter;
                }
            }
        }

        catch(IOException ioe1)
        {
            System.out.println("There was a problem reading the file.");
        }

        System.out.println(peoplearray[0]);

    }
}
正如我在程序中所展示的,我试图打印peoplearray[0]的值,但当我这样做时,我的输出显示为:“null”

如果程序正常工作,peoplearray[0]的值应为“John Doe”,因为这些是“names.txt”中的适当值

peoplearray[0]的值是否应该为null? 如果没有,我可以如何解决此问题?
谢谢

您的论点顺序错误:

StringTokenizer token = new StringTokenizer("!", a);

公共StringTokenizer(字符串str,字符串delim

使用

StringTokenizer token = new StringTokenizer(a,"!");