Solved

Help with programming project, writing to a txt file

Posted on 2008-06-20
4
208 Views
Last Modified: 2010-04-21
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

0
Comment
Question by:Hueydude
  • 3
4 Comments
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
You close 'output' in the loop. Should  close after it
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 125 total points
Comment Utility
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
 

Author Closing Comment

by:Hueydude
Comment Utility
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
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
:-) You'll get to know which dogs can bite in time ;-)
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
This video teaches viewers about errors in exception handling.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now