2016-10-30 22 views
0

以前に作成した配列をファイルに書き込もうとしています。 これは私が得るエラーです、そして、私はそれを修正する方法を知らない。書き込みに適切なメソッドが見つかりません

public void writeAquatic() throws IOException                 
{                            
    BufferedWriter outputWriter = null;                  
    String fileName = "Output.txt";                   
    outputWriter = new BufferedWriter(new FileWriter(fileName));            
    for(int p = 0; p < animals.length; p++)                 
    {                           
     outputWriter.write(animals[p]);                  
     outputWriter.newLine();                    
    }                           
    outputWriter.flush();                      
    outputWriter.close();                      
}                            

背景情報:: - 水生動物、陸生動物とフライング動物 - さまざまな機能が含まれているすべての 配列は、3つのオブジェクトの配列です。ここ

Zoo.java:341: error: no suitable method found for write(Animals)outputWriter.write(animals[p]); 
        ^

method Writer.write(int) is not applicable 
    (argument mismatch; Animals cannot be converted to int) 

method Writer.write(char[]) is not applicable 
    (argument mismatch; Animals cannot be converted to char[]) 
method Writer.write(String) is not applicable 
    (argument mismatch; Animals cannot be converted to String) 
method BufferedWriter.write(int) is not applicable 
    (argument mismatch; Animals cannot be converted to int) 

はサブモジュールです。 助けがあれば助かります。

+0

、そのような '書き込み()'メソッドはありません。シリアライズをお探しですか? 'ObjectOutputStream.writeObject()'? – EJP

+0

ヒント: 'animals [p]'はどんなタイプですか? 'write'は特定の型を予期しており、正しい型のうちの1つを' write'に渡していません – ShadowGod

答えて

0

Animalsは、JavaがStringint、またはcharに変換する方法を知らないクラスです。

AnimalsインスタンスデータをファイルOutput.txtに書き込むとします。

この場合、AnimalsクラスにtoString()メソッドを定義する必要があります。そのため、print関数はインスタンスをstringに変換してファイルに書き込むことができます。

class Animals { 
    String name; 

    @Override 
    public String toString() { 
     return "Animal name : " + name; 
    } 
} 

参照:コンパイラがあなたを語っているのと同じように
http://www.javatpoint.com/understanding-toString()-method

関連する問題