чтение файла в массив строк

Тема в разделе "Java", создана пользователем abygail, 18 окт 2006.

Статус темы:
Закрыта.
  1. abygail

    abygail Гость

    Нужно прочитать файл в массив, так чтобы каждый элемент содержал одну строку.

    Сделал, но скорее всего неправильною потому как памяти много уходит (в 2 раза больше чем нужно) иза использования и lines и buf. Может на java есть какие стредства для динамического изменения размера массива или типа того ?

    Код (Text):
        File baseFile = new File(args[0]);

    //create lines array
    String[] lines = new String[0];
    String[] buf;

    String s = "";
    int count = 0;

    //read file
    try {
    FileReader fr = new FileReader(baseFile);
    BufferedReader br = new BufferedReader(fr);

    while ((s = br.readLine()) != null) {
    //skopiruem tekuschi massiv
    buf = lines;
    //sozdadim novy na 1 stroku bolshe
    lines = new String[count + 1];
    //perenesem bufer v novy massiv i dobavim v nego prochitannuu stroku
    for (int i = 0; i < buf.length; i++) {
    lines[i] = buf[i];
    }
    lines[count] = s;
    count++;
    }

    for (int i = 0; i < lines.length; i++) {
    System.out.println(lines[i]);
    }
    br.close();

    } catch (IOException e) {
    }
     
  2. Afrael

    Afrael Гость

    ну работает то правильно, если принять во внимание перфоманс, то может стоит заменить
    String[] - на Arraylist.
    тогда вызовов new будет поменьше - но гарантировать что это будет экономичнее - не факт
     
  3. bingo

    bingo Гость

    Только лучше будет предварительно указать initialCapacity в конструкторе ArrayList'a, чтоб внутренний массив не пересоздавался по многу раз (если файл большой).
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей