Java:读入文件并打印

时间:2017-07-30 14:51:14

标签: java class bufferedreader filereader

我正在制作一个用动态恐惧症读入文本文件的程序。恐惧症的名称和动物的名字。

该文件如下所示:

cynophobia          dogs

ailurophobia        cats

musophobia          rats

ichthyophobia       fish

我希望输出看起来像这样:

ailurophobia - fear of cats

cynophobia - fear of dogs

ichthyophobia - fear of fish

musophobia - fear of rats

这是我得到的输出:

cynophobia - fear of  

ailurophobia - fear of 

musophobia - fear of

ichthyophobia - fear of

你可以看到动物的名字没有打印......

我的节目由三个类组成,主要是Zoophobia和Dictionary。 问题出在load()方法和print()。

//主要课程

 package exercise1;

public class Main {

    public static void main(String[] args) {

        Dictionary dic = new Dictionary();
        dic.load();
        dic.print();

    }

}

// Zoophobia class

    package exercise1;

    public class Zoophobia implements Comparable<Zoophobia> {
        private String phobia, animal;

        //constructor
        public Zoophobia(String thePhobia, String theAnimal)
        {
            phobia = thePhobia;
            animal = theAnimal;
        }

        //INstance methods 
        public void setPhobia(String thePhobia)
        {
            phobia = thePhobia;
        }

        public void theAnimal(String theAnimal)
        {
            animal = theAnimal;
        }

        public String getPhobia()
        {return phobia;}

        public String getAnimal()
        {return animal;}

        //Fattar inte! //Slide 10
        public int compareTo(Zoophobia zp)
        {
            return phobia.compareTo(zp.phobia);
        }

        public String toString()
        {
            return phobia + " - fear of " + animal;
        }
    }

//字典类

package exercise1;
import java.util.*;
import java.io.*;

public class Dictionary {
    private ArrayList<Zoophobia> arr;

    //Constructor that initializes the dynamic array
    public Dictionary()
    { arr = new ArrayList<Zoophobia>(); }

    //Method to read in data from file
    public void load()
    {
        String loaded, phobia, animal;
        String[] array;

        try{
        BufferedReader infile = new BufferedReader(new FileReader("old.txt"));

        while((loaded = infile.readLine()) != null)
        {
            array = loaded.split(" ");

            //Collections.sort(arr);
            arr.add(new Zoophobia(array[0].trim(), array[1].trim()));

        }

        infile.close();
        }
        catch(IOException ierr){}
    }

    public void print()
    {
        for(int i = 0; i < arr.size(); i++)
        {
            System.out.println(arr.get(i)); 
        }   
    }
}

0 个答案:

没有答案