Solved

Help with programming project, writing to a txt file

Posted on 2008-06-20
4
214 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
ID: 21831011
You close 'output' in the loop. Should  close after it
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 125 total points
ID: 21831032
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
ID: 31469140
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
ID: 21831340
:-) You'll get to know which dogs can bite in time ;-)
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

816 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

12 Experts available now in Live!

Get 1:1 Help Now