Читать несколько файлов в Java - PullRequest
1 голос
/ 21 сентября 2011

Я хочу читать несколько файлов на Java одновременно. Имена файлов выглядят так:

  • nnnnn_UM2012.txt
  • ghkjdf_UM2045.txt
  • erey_UM2189.txt
  • ....

Существует более 1000 файлов, и я не хочу записывать все имена файлов в Java по очереди, используя код, подобный следующему:

String fileNames = {"nnnnn_UM2012.txt","ghkjdf_UM2045.txt","erey_UM2189.txt", …}

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

Ответы [ 4 ]

4 голосов
/ 21 сентября 2011

Вы можете использовать метод listFiles для получения всех файлов в папке.

3 голосов
/ 21 сентября 2011

Чтобы получить все файлы в папке (подпапки включены в список файлов):

    // get all files in the folder
    final File folder = new File(".");
    final List<File> fileList = Arrays.asList(folder.listFiles());

Чтобы получить все файлы в папке, кроме подпапок:

    // get all files in the folder excluding sub-folders
    final File folder = new File(".");
    final List<File> fileList = Arrays.asList(folder.listFiles(new FileFilter() {
        public boolean accept(File pathname) {
            return pathname.isFile();
        }
    }));

Чтобы отсортировать список файлов в обратном регистрозависимом порядке:

    // sort the files into reverse order
    Collections.sort(fileList, new Comparator<File>() {
        public int compare(File o1, File o2) {
            return o2.getName().compareTo(o1.getName());
        }
    });

Чтобы отсортировать список файлов в обратном регистронезависимом порядке:

    // sort the files into reverse order ignoring case
    Collections.sort(fileList, new Comparator<File>() {
        public int compare(File o1, File o2) {
            return o2.getName().compareToIgnoreCase(o1.getName());
        }
    });
0 голосов
/ 21 сентября 2011

Вы можете следовать приведенному ниже подходу, если все файлы находятся в одном каталоге. Получите ссылку на каталог, указав его полный путь, а затем с помощью функции list() получите все имена файлов в массив String внутри каталога.

После этого шага вы можете сортировать файлы по своему усмотрению (например, по имени, длине и т. Д.).

0 голосов
/ 21 сентября 2011
File rep = new File("path to rep");
File[] list = rep.listFiles();
ArrayList<String> filenames = new ArrayList<String>();
for ( int i = 0; i < list.length; i++) {
    filenames.add(list[i].getName());
} 

Я думаю, это может быть решением вашей проблемы.

...