2016-05-11 72 views
-1

我想將文本文件中的行存儲到不是字符串數組的數組中。返回類型應該是一個GO-陣列(已經創建了一個名爲「GO」另一個類的構造函數和GET-/套的方法,我會在代碼的其他部分使用。)將文本文件存儲在非字符串數組中

int rad = 0; 
GO [] list = new CD [rad]; 

public GO[] readFile(String filename) throws FileNotFoundException { 
    Scanner read = new Scanner (new File(filename)); 
    while (read.hasNextLine()==true){ 
     rad++; 
     read.nextLine(); 
    } read.close(); 

    read = new Scanner(new File(filename)); 
    for (int i=0;i<list.length;i++){ 
     //here the lines of the file should be stored in the "GO"array 
     // but the declaration cannot convert string to GO[] 
     list[i]=read.nextLine() 
+3

在邏輯中'== true'是多餘的。它就像'* 1'或'+ 0'。 – Pshemo

+0

而你的問題是? – gfelisberto

+0

編輯:它應該是「GO [] list = new GO [rad]」 –

回答

-1

你您需要自己解析生成的String,並從中創建一個GO對象,這可以作爲一個單獨的方法來保持事物的清潔。獲取對象變量的值並適當地使用您的設置器。

如果你的程序是寫什麼的文件的內容,你最好有GO實施Serializeable和保存/加載對象本身的狀態,而不是使文本。如果不是,那麼以上是你唯一的選擇,真的。

+0

實際上,Java序列化非常臃腫,如果你只想堅持一個特定類的細節,你最好自己編寫它。只有當你有一個支持未知類的通用框架時,序列化纔是有效的,而且即使這樣,市場上的Java序列化也會有替代品,從而減少它的大小並增加其可移植性。 – RealSkeptic

0
class GO<T>{ 
    private T ref; 

    public GO(T ref) { 
    this.ref = ref; 
    } 

} 

您應該將您的GO類更改爲使用泛型,並且您可以使用此方法爲Go Array添加值。

list[i] = new GO(read.nextLine()); 

通過將類更改爲泛型。您可以通過將任何對象傳遞給構造函數來創建Go類的實例。

相關問題