Help with programming project, writing to a txt file

With some previous help I have almost finished this programming project. I am at the final part of writing txt to a file from an array. I can get it to write once but for some reason it won't write all iterations of the text. It writes the first name and quits. I have a loop but it doesn't seem to make a difference. Can someone tell me where I am screwing up? I am getting pretty frustrated with Java. This is the last assignment for the class and I feel I should be seeing these mistakes myself...

It's the very last part from "create a file" I assume is wrong but I included the rest in case I screwed it up somewhere else.

Thanks in advance
public class TestName {
   
       public static void main(String[] args) throws Exception {
      // Create a File instance
         java.io.File file = new java.io.File("names.txt");
      
         java.util.Scanner input = new java.util.Scanner(file);
      
         Name[] nameArray = new Name[10];
      
         //System.out.println(input.delimiter());
      
      // Read data from a file
         int index = 0;
         while (input.hasNext()) {
            String first = input.next();
            String middle = input.next();
            String last = input.next();
         
            Name name = new Name(first, middle, last);
         
            nameArray[index++] = name;
         }
      
         printNameArray(nameArray);
         printOutPut(nameArray);
      
      // Close the file
         input.close();
      }
   
       public static void printNameArray(Name[] nameArray) {
         Name name;
         String first;
         String middle;
         String last;
         for (int i = 0; i < nameArray.length; i++) {
            name = nameArray[i];
            first = name.getFirst();
            middle = name.getMiddle();
            last = name.getLast();
         
            System.out.println(nameArray[i].getFirst() + " " + nameArray[i].getMiddle() +  " " + nameArray[i].getLast() + " " +  nameArray[i].initials());
         
         
         
         
         
         
         }
      }
       public static void printOutPut(Name[] nameArray) throws Exception {
         java.io.File outfile = new java.io.File("output.txt");
         if (outfile.exists()) {
            System.out.println("File already exists");
            System.exit(0);
         }
         
         // Create a file
         java.io.PrintWriter output = new java.io.PrintWriter(outfile);
         Name name;
         String first;
         String middle;
         String last;
         for (int i = 0; i < nameArray.length; i++) {
            name = nameArray[i];
            first = name.getFirst();
            middle = name.getMiddle();
            last = name.getLast();
            
            output.print(nameArray[i].getLast() + ", " + nameArray[i].getFirst() + " " + nameArray[i].getMiddle() + "\n");
                       
                    
            // Close the file
            output.close();            
            //System.out.println(nameArray[i].getFirst() + " " + nameArray[i].getMiddle() +  " " + nameArray[i].getLast() + " " +  nameArray[i].initials());
            
            
            
            
            
            
         }
                 
      }
   }

Open in new window

HueydudeAsked:
Who is Participating?
 
CEHJCommented:
i.e. change

                for (int i = 0; i < nameArray.length; i++) {
                        name = nameArray[i];
                        first = name.getFirst();
                        middle = name.getMiddle();
                        last = name.getLast();

                        output.print(nameArray[i].getLast() + ", " +
                                nameArray[i].getFirst() + " " + nameArray[i].getMiddle() + "n");

                        // Close the file
                        output.close();

                }

to
                for (int i = 0; i < nameArray.length; i++) {
                        name = nameArray[i];
                        first = name.getFirst();
                        middle = name.getMiddle();
                        last = name.getLast();
 
                        output.print(nameArray[i].getLast() + ", " +
                                nameArray[i].getFirst() + " " + nameArray[i].getMiddle() + "n");
 
                } 
 
                // Close the file
                output.close();

Open in new window

0
 
CEHJCommented:
You close 'output' in the loop. Should  close after it
0
 
HueydudeAuthor Commented:
See, that's what ticks me off about this class. I should have been able to figure that out on my own!!

Thanks for the help!!
0
 
CEHJCommented:
:-) You'll get to know which dogs can bite in time ;-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.