Как взять данные из файла???

 
 
 
Сообщения:6
Нужно создать массив из первых строк файлов в каталоге. Массив файлов взять получается, а массив строк - не находит файлы. Может из-за try-catch... если есть какие-нить идеи, то пожалуйста подскажите. Заранее благодарен.

Код программы:
public class AutospravkaFiles {
  public static void main(String[] args) {
    String s1;
    String dirname = "D:/Projects/Автосправка/Autospravka/Autospravka_ftp_data";
    File f1 = new File(dirname);

    if (f1.isDirectory()) {
      System.out.println("Каталог: " + dirname);
      String s[] = f1.list();

      for (int i=0; i < s.length; i++) {
        try {
          FileReader fr1 = new FileReader(s[i]);
          BufferedReader br1 = new BufferedReader(fr1);
          try {
            s1 = br1.readLine();
            System.out.println(s1);
            fr1.close();
          }
          catch (IOException ex1) {
            System.err.println ("Ошибка открытия файла!!!");
            ex1.printStackTrace();

          }

        }
        catch (FileNotFoundException ex) {
          System.err.println ("Файл не найден!!!");
          ex.printStackTrace();
        }
      }
    }
    else {
      System.out.println("Каталога " + dirname + " не существует!" );
    }
  }
}
 
 
Сообщения:3874
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class EnumFiles {

    private static void enumFiles(File dir, List list, boolean recurse) throws IOException, FileNotFoundException {
        System.out.println("Processing directory content [" + dir.getCanonicalPath() + "]");
        if (dir.isDirectory()) {
            File[] files = dir.listFiles();
            for (int i = 0; i < files.length; i++) {
                // Source file is a file
                if (files[i].isFile()) {
                    System.out.println("Reading first line of the file [" + files[i].getCanonicalPath() + "]");
                    String line = readFirstLine(files[i]);
                    System.out.println("First line is [" + line + "]");
                    list.add(line);
                } else {
                    // Source file is a directory
                    if (recurse) enumFiles(files[i], list, recurse);
                }
            }
        }
    }

    private static String readFirstLine(File file) throws IOException {
        // Perform some validation
        if (!file.exists() || !file.canRead()) throw new IllegalArgumentException("File [" + file.getCanonicalPath()
                + "] does not exists or cannot be read!");
        if (file.isDirectory()) throw new IllegalStateException("Destination file [" + file.getCanonicalPath()
                + "] is directory!");

        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line = reader.readLine();
        reader.close();

        return line;
    }

    public static void main(String[] args) {
        try {
            List list = new ArrayList();
            enumFiles(new File("D:/Projects/Автосправка/Autospravka/Autospravka_ftp_data"), list, true);
            System.out.println("List: " + list.toString());
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}
 
 
Сообщения:6
Спасибо огромное !!!
 
 
Сообщения:6
При компиляции выдаёт такого рода надпись? :(

"AutospravkaFiles.java": Package D:\Projects\Автосправка\Autospravka\src\autospravka\AutospravkaFiles.java stated in source unnamed package does not match directory D:\Projects\Автосправка\Autospravka\src\autospravka\AutospravkaFiles.java."
 
 
Сообщения:3874
Ошибка в том что в файле AutospravkaFiles.java неправильно указан пакет к которому он относится. В Java имя пакета должно совпадать с физическим рассположением файла в дереве папок.

В файле AutospravkaFiles.java (судя по ошибке) отсутствует или имеет другой вид следующая строчка (в самом верху):

Quote:
package autospravka;
 
 
Сообщения:6
спасибо gesser, заработало!
 
 
Сообщения:6
И ещё такой вопрос, мне надо сравнить все первые строки в файлах, тем самым посчитать все файлы с разными первыми строками. Сам новичок ещё в Яве. Буду признателен за помощь.
 
 
Сообщения:3874
Артём Нашев:
И ещё такой вопрос, мне надо сравнить все первые строки в файлах, тем самым посчитать все файлы с разными первыми строками. Сам новичок ещё в Яве. Буду признателен за помощь.


Сделали?
 
 
Сообщения:6
Добрый день! Давно на форуме не появлялся. У меня так ничего тогда не получилось, если можно, gesser, выложите код для сравнения строк, а то с массивами вообще туго... Спасибо :?
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет