在输出文件上写

时间:2013-04-09 22:59:40

标签: java

我被困在这个没有写入输出文件的部分

第一堂课是联系我我不得不修改这不是我的班级是作者班 我只是不得不使用它

    //********************************************************************  
// Contact.java Author: Lewis/Loftus  
//  
// Represents a phone contact.  
//********************************************************************  
public class Contact implements Comparable  
{  
 private String firstName, lastName, phone;  
  //-----------------------------------------------------------------  
  // Constructor: Sets up this contact with the specified data.  
  //-----------------------------------------------------------------  
  public Contact (String first, String last, String telephone)  
  {  
    firstName = first;  
    lastName = last;  
    phone = telephone;  
  }  
  //-----------------------------------------------------------------  
  // Returns a description of this contact as a string.  
  //-----------------------------------------------------------------  
  public String toString ()  
  {  
    return lastName + ", " + firstName + "\t" + phone;  
  }  
  //-----------------------------------------------------------------  
  // Returns true if the first and last names of this contact match  
  // those of the parameter.  
  //-----------------------------------------------------------------  
  public boolean equals (Object other)  
  {  
   return (lastName.equals(((Contact)other).getLastName()) &&  
   firstName.equals(((Contact)other).getFirstName()));  
  }  
  //-----------------------------------------------------------------  
  // Uses both last and first names to determine ordering.  
  //-----------------------------------------------------------------  
  public int compareTo (Object other)  
  {  
   int result;  
   String otherFirst = ((Contact)other).getFirstName();  
   String otherLast = ((Contact)other).getLastName();  

   if (lastName.equals(otherLast))  

      result = firstName.compareTo(otherFirst);  
   else  

      result = lastName.compareTo(otherLast);  

    return result;  
  }  
  //-----------------------------------------------------------------  
  // First name accessor.  
  //-----------------------------------------------------------------  
  public String getFirstName ()  
  {  
    return firstName;  
  }  
  //-----------------------------------------------------------------  
  // Last name accessor.  
  //-----------------------------------------------------------------  
  public String getLastName ()  
  {  
    return lastName;  
  }  
}  

这个课程的排序很好。它排序没有问题

    public class Sorting {  

    public static void bubbleSortRecursive(Comparable[] data, int n)   
    {  

        if (n < 2)   
        {  
            return;  
        }  
        else  
        {  

            int lastIndex = n - 1;  

            for (int i = 0; i < lastIndex; i++)   
            {  
                if (data[i].compareTo(data[i + 1]) > 0)   
                { //swap check  

                    Comparable tmp = data[i];  
                    data[i] = data[i + 1];  
                    data[i + 1] = tmp;  
                }  
            }  

            bubbleSortRecursive(data, lastIndex);  
        }  
    }  

    public static void selectionSortRecursive(Comparable[] data, int n)   
    {  

        if (n < 2)   
        {  
            return;  
        }   
        else   
        {  

            int lastIndex = n - 1;  
            int largestIndex = lastIndex;  

            for (int i = 0; i < lastIndex; i++)   
            {  
                if (data[i].compareTo(data[largestIndex]) > 0)   
                {  
                    largestIndex = i;  
                }  
            }  

            if (largestIndex != lastIndex)   
            { //swap check  
                Comparable tmp = data[lastIndex];  
                data[lastIndex] = data[largestIndex];  
                data[largestIndex] = tmp;  
            }  

            selectionSortRecursive(data, n - 1);  
        }  
    }  
}  

这是我需要帮助的部分。它没有输出到p4output.txt,我不知道问题是什么。

    import java.io.BufferedWriter;  
import java.io.File;  
import java.io.FileWriter;  
import java.io.IOException;  


public class TestProject4 {  

    public static void main(String[] args)   
    {  

        doBubbleSortRecursive();  

        System.out.println();  
        System.out.println();  

        doSelectionSortRecursive();  

    }  
    private static void doBubbleSortRecursive()  
    {  
        Contact[] contacts = createContacts();  

        System.out.println("Before bubbleSortRecursive(): ");  
        for (int i=0; i<contacts.length; i++)  
        System.out.println(contacts[i].toString());  


        Sorting.bubbleSortRecursive(contacts, contacts.length);  

        System.out.println("\nAfter bubbleSortRecursive(): ");  
        for (int i=0; i<contacts.length; i++)  
        System.out.println(contacts[i].toString());  
    }  

    private static void doSelectionSortRecursive()   
    {  
        Contact[] contacts = createContacts();  


        System.out.println("Before selectionSortRecursive(): ");  
        for (int i=0; i<contacts.length; i++)  
        System.out.println(contacts[i].toString());  

        Sorting.selectionSortRecursive(contacts, contacts.length);  

        System.out.println("\nAfter selectionSortRecursive(): ");  
        for (int i=0; i<contacts.length; i++)  
        System.out.println(contacts[i].toString());  
    }  

    private static void printContacts(Contact[] contacts)  
    {  

        try   
        {  

        // this part I need help with it is not outputing in the text file   
                    File file = new File("p4output.txt");  
            FileWriter fw = new FileWriter(file.getAbsoluteFile());  
            BufferedWriter bw = new BufferedWriter(fw);  

            for (Contact contact : contacts)  
             {  
                bw.write(contact.toString());       
             }              
              bw.close();  
        }  

        catch (IOException e)   
        {  
           e.printStackTrace();  
        }  

       System.out.println("\t" + contacts);  
    }  
    public static Contact[] createContacts()   
    {  
        return new Contact[]   
        {  
            new Contact("John"  , "Smith" , "610-555-7384"),  
            new Contact("Sarah" , "Barnes"   , "215-555-3827"),  
            new Contact("Mark"  , "Riley", "333-333-3333"),  
            new Contact("Laura"   , "Getz"  ,"663-555-3984"),  
            new Contact("Larry"  , "Smith"  , "464-555-3489"),  
            new Contact("Frank"  , "Phelps" , "322-555-2284"),  
            new Contact("Mario"    , "Guzman" , "804-555-9066"),  
            new Contact("Marsha"    , "Grant" , "243-555-2837"),  
        };  
     }  
 }  

2 个答案:

答案 0 :(得分:0)

根据Eclipse,你永远不会调用/使用printContacts(Contact[] contacts);方法

enter image description here

您的printContacts(Contact[] contacts);包含写入文件的语句。

答案 1 :(得分:0)

您似乎没有在程序中调用函数printContacts()。在创建联系人和排序后尝试调用它。

可能看起来像这样:

public static void main(String[] args)   
{  

    doBubbleSortRecursive();  

    System.out.println();  
    System.out.println();  

    doSelectionSortRecursive();  
    printContacts(contactArray);//inserted code
}  

此外,当您调用排序方法doSelectionSortRecursive()时,您不会返回联系人列表。为它创建一个return语句,然后将contact数组放入printContacts函数中。

以下是一个例子:

public static void main(String[] args)   
{  

    doBubbleSortRecursive();  

    System.out.println();  
    System.out.println();  

    Contact[] contacts = doSelectionSortRecursive();  
    printContacts(contacts);
}  

public static Contact[] doSelectionSortRecursive(){
    Contact[] contacts = createContacts();
    //your sorting code
    return contacts;
}

使用此方法可以在方法排序后从方法中获取联系人数组。