как сделать очередь из данных в файле - PullRequest
0 голосов
/ 10 февраля 2010

вот что у меня есть.проблема, с которой я сталкиваюсь, заключается в том, как найти количество элементов в файле, чтобы я мог инициализировать очередь.Ваши предложения будут оценены.

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]);
}

Ответы [ 2 ]

0 голосов
/ 10 февраля 2010

Вы не можете понять, сколько строк в файле, когда вы открываете его. Одна вещь, которую вы можете сделать, это добавить все строки в список, ваш FiFo может принять этот список в качестве параметра конструктора и использовать его в качестве вспомогательных данных.

0 голосов
/ 10 февраля 2010

Почему вы хотите реализовать свой класс Fifo? Это домашнее задание?

Почему бы вам не использовать этот класс :

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;
}

С этим вам не нужно знать количество строк в файле.

Если вам действительно нужно количество строк в файле, см. Эту тему .

...