Hi, I have a fileoutput method which when called, should output the array into a text file. The array is stored in the same public class as the fileoutput method and I am using a constructor for the array, which is in the Cd class. I would like to know how to call this method from within the same class or should i place the file output method in the Cd class. If so, how would i call the method in the main method of public class? i think it should be something like fileoutput(array); ?? i have tried many things but hasn't worked. thanks.

import javax.swing.*;
import java.util.*;
import java.io.*;

public class MyCdDatabase
{
	public static void main (String[] args)
	{ 
	  	int entry = 1;
	  	Cd[] record = new Cd[entry]; 
	  	
	  	final int SENTINEL = -1;  
	  
	             String album;
	             String menu;
	             int MenuChoice;
		int i;
		int p;
		
		int ARRAY_SIZE = 4;
		
		Cd[] array = new Cd[ARRAY_SIZE];
	  	{
		  	array[0] = new Cd("Deftones","White Pony","Hard Rock","Maverick",2000,14);
			array[1] = new Cd("The Apex Theory","Apossibly","Alternative","Dreamworks",2002,12);
			array[2] = new Cd("System Of A Down","Mezmerize","Hard Rock","Sony",2005,14);
			array[3] = new Cd("Ill Nino","Confession","Hard Rock","Roadrunner",2003,14);
		}

	  	menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
	 	MenuChoice = Integer.parseInt(menu);
	  		
	  		while (MenuChoice != SENTINEL)
			{
				if (MenuChoice == 0 ) 
				{
				  	for ( i = 0; i<entry; i++) 
				  	{
				 	 	record[i] = new Cd();   
				  	}
					  	for ( i = 0; i<entry; i++)
					  	{
					  		record[i].printcd();
					  	}
				   	 
				menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
				MenuChoice = Integer.parseInt(menu);
				
				}
		
				else if (MenuChoice == 1)
				{
					for ( p = 0; p<ARRAY_SIZE; p++)
					{
					 	array[p].printarray();
					}
					
				menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
				MenuChoice = Integer.parseInt(menu);
				
			    }
					
				else if (MenuChoice == 2)
				{
				  	System.exit(0);
				}
				
				else if (MenuChoice == 3)
	  			{
	  				album = JOptionPane.showInputDialog("Enter The Album To Search For :");
	
			   		System.out.println("Searching For Album ... : " + album);
			   		
			   			for ( p = 0; p<ARRAY_SIZE; p++)
			    		{
							if (array[p].AlbumName.equals(album))
							array[p].printarray();	
						}		
							
		  		menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
				MenuChoice = Integer.parseInt(menu);
	    				
	  			}		
	  			
	  			else if (MenuChoice == 4)
	  			{
	  				
	  				
	  				
	  			menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
	  			MenuChoice = Integer.parseInt(menu);
	  			
	  			}
	  			
	  			else if (MenuChoice == 5)
	  			{
	  				
	  				
	  			menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
	  			MenuChoice = Integer.parseInt(menu);
	  			
	  			}
	  			
	  			else if (MenuChoice == 6)
	  			{
	  				
	  			menu = JOptionPane.showInputDialog("Enter New Entry = 0, Print Database = 1, Quit = 2, Search = 3, Output Database = 4, Input Database From File = 5, Sort = 6");
	  			MenuChoice = Integer.parseInt(menu);
	  			
	  			}
	 		}				 
	 }
	 	 public void fileoutput (Cd[] array) throws IOException
		 {
			final FileWriter outputFile = new FileWriter("CD_Database.txt");
			final BufferedWriter OutputBuffer = new BufferedWriter(outputFile);
			final PrintWriter printstream = new PrintWriter(OutputBuffer);
					
			for(int p = 0; p < array.length; p++)
			{ 
				printstream.println(array[p]); 
				printstream.close();    		
	     	}
		
			final FileReader inputFile = new FileReader("CD_Database.txt");
			final BufferedReader inputBuffer = new BufferedReader(inputFile);
		
			String line = inputBuffer.readLine();
		
	}	
}
	  
class Cd
{
	public String BandName;		
	public String AlbumName;    
	public String Genre;              
	public String RecordLabel;          
	public int YearReleased; 
	public int NoOfTracks;

	public Cd ()
 	{
		BandName = JOptionPane.showInputDialog ("Enter The Artist/s Name : ");
		AlbumName = JOptionPane.showInputDialog("Enter The Album Name :");
		Genre = JOptionPane.showInputDialog("Enter The Music Genre :");
		RecordLabel = JOptionPane.showInputDialog("Enter The Record Label :");
		YearReleased = Integer.parseInt(JOptionPane.showInputDialog("Enter The Release Year :"));
		NoOfTracks = Integer.parseInt(JOptionPane.showInputDialog("Enter The Number Of Tracks :"));
 	}
 	
 	public Cd (String b, String a, String g, String r, int y, int n)
 	{
 			BandName= b; 
			AlbumName = a; 
			Genre = g; 
			RecordLabel = r; 
			YearReleased = y;
			NoOfTracks = n;
	}
		
	public void printcd ()
    {
	  	String print = "Band: " + BandName + " Album: " + AlbumName + " Genre: " + Genre + " Label: " 
	  							+ RecordLabel + " Year: " + YearReleased + " Tracks: " + NoOfTracks;
				  
		System.out.println(print);
    }
    
    public void printarray ()
    {
    	String array = "Band: " + BandName + " Album: " + AlbumName + " Genre: " + Genre + " Label: " 
	  							+ RecordLabel + " Year: " + YearReleased + " Tracks: " + NoOfTracks;
				  
		System.out.println(array);	
	}

}

Hi everyone,

Use the BufferedReader and BufferedWriter classes. Write and read your data appropriately. See the above java class apis for more details

Richard West

This article has been dead for over six months. Start a new discussion instead.