2010-02-10 62 views
0

這裏是我到目前爲止。我面臨的問題是如何找到文件中的元素數量,以便我可以初始化隊列。你的建議將得到最充分的證明。如何從文件中的數據創建一個隊列

class FileHandler { 
BufferedReader data; 
DataInputStream in; 

    public FileHandler(String fileName) { 
    try { 
     data = new BufferedReader(new FileReader(fileName)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

public FiFo fileToLines() { 

///////////////////here is where i need ur help whats teh string size//////////////////// 

    private FiFo lines=new FiFo(data.) 
     String line = ""; 
    try { 
     while ((line = data.readLine()) != null) { 
      lines.add(line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    }*/ 
    return lines; 
} 

public void closeFile() { 
    try { 
     data.close(); 

    } 

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

public class FiFo { 

    private int index; 
    private String[] queue; 

    public FiFo(int size) 
{ 
      queue=new String[size]; 
     index=0; 

} 

public void add(String element) 
{ 
    queue[index]=element; 
    index++; 
} 
public void remove() 
{ 
    int temp=0; 
    while(temp!=index) 
    { 
     queue[temp]=queue[temp+1]; 
     temp++; 
    } 
    index--; 
} 

public String get() 
{ 
    return queue[0]; 
} 

public int size() 
{ 
    return index; 
} 

public void printQueue() 
{ 
    for (int i=0;i<=index;i++) 
     System.out.println(queue[i]); 
} 
+0

你的格式非常糟糕。你可以嘗試編輯你的問題,再次粘貼你的代碼,然後選擇它,然後按「代碼示例」按鈕讀取'101010'?它看起來像你按下了blockquote按鈕,這不按照你的意圖。 – 2010-02-10 05:01:36

+0

對不起,我對此感到陌生...我試圖重新啓動它.... leme知道它是否仍然需要工作 – Shaz 2010-02-10 05:11:02

+0

我不是故意成爲語法納粹,但我認爲人們會感激你的問題更多如果你花時間拼寫整個單詞(「be」而不是「b」,「讓我」而不是「leme」等)。如果你表明你在這個問題上付出了一些努力,人們會更傾向於將一些努力付諸於答案。 – 2010-02-10 08:04:58

回答

0

你爲什麼要實現你的Fifo類?它是功課嗎?

你爲什麼不使用this class

public Queue fileToLines() { 

    LinkedList<String> lines = new LinkedList<String>(); 


    String line = ""; 
    try { 
     while ((line = data.readLine()) != null) { 
      lines.add(line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    }*/ 
    return lines; 
} 

有了這一個,你不必知道該文件中的行數。

你真的想擁有一個文件中的行數,see this topic

+0

它的作業我必須實現隊列 – Shaz 2010-02-10 05:21:16

+0

在這種情況下,你可以實現一個不需要知道初始大小的隊列。初始化你的隊列的大小爲(比方說)100,然後每次添加一個項目時,檢查它的大小是否足夠大。如果不是,則將更多大小添加到您的陣列。 (創建一個新的存儲陣列,並使用java.util.Arrays.copy將舊的複製到新) – 2010-02-10 07:15:57

0

當打開文件時,您無法理解文件中有多少行。您可以做的一件事就是將所有行添加到列表中,您的FiFo可以將該列表作爲其構造函數參數並將其用作其支持數據。

+0

謝謝你可以建議它更好地將字符串陣列在FiFo私人或公開因爲我也必須比較2尋找並找到共同的元素 – Shaz 2010-02-10 05:27:20

相關問題