简体   繁体   中英

Reading Files to Store their Data in an Array

The program that I am writing is in Java. I am attempting to make my program read the file "name.txt" and store the values of the text file in an array.

So far I am using a text file that will be read in my main program, a service class called People.java which will be used as a template for my program, and my main program called Names.java which will read the text file and store its values into an array.

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;
        }
}

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]);

    }
}

As I show in my program, I tried to print the value of peoplearray[0], but when I do this, my output reads: "empty empty" which are the values I gave String b and String c when I instantiated them.

If the program were working corrrectly, the value of peoplearray[0] should be, "John Doe" as those are the appropriate values in "names.txt"

What can I do to fix this problem?

Thanks!

StringTokenizer(String str, String delim)

is the constructor of StringTokenizer.

You have written it wrong .
Just change your line StringTokenizer token = new StringTokenizer("!", a); to

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

Just change it a little bit

        StringTokenizer token = new StringTokenizer(a, "!");
        while(token.hasMoreTokens())
        {
             b = token.nextToken();
             c = token.nextToken();
        }
        //do something with them

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM