2015-09-10 2 views
0

Я перечислил последние измененные файлы в папке и хочу получить последнюю строку в списке.Я хочу получить последнюю строку на массиве

Вот программа, которую я пробовал. Пожалуйста, помогите мне получить последнюю строку.

File dir = new File(path); 
FileFilter fileFilter = new WildcardFileFilter("R_*.tar.Z"); 
File[] files = dir.listFiles(fileFilter); 
Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR); 

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

if (files() == 1) { 
    System.out.println(list.get(files() - 1)); 
} else { 
    System.out.println("List is empty or bigger than one"); 
} 
+2

Вы знаете, сколько элементов находится в файлах (в цикле for). Вы знаете, как получить заданный номер позиции из массива (в инструкции println). Вы можете объединить эти знания, чтобы выяснить, как получить номер позиции, соответствующий количеству элементов в файлах (не забудьте вычесть его, поскольку Java начинает отсчет с нуля, а не один) –

ответ

2

array с п записей (п> 0) индексируется от 0 до п - 1, так как о

int n = files.length; 
if (n > 0) { 
    System.out.println(files[n - 1]); 
} 
+0

да, вы правы – John

0

Ну, так как элементы массива индексируются, начиная с 0, последняя запись имеет индекс, равный длина массива -1. Так что я хотел бы сделать это так:

File lastEntry=files[files.length-1]; 

Надеется, что помог.

+0

да, спасибо помогло – John

+0

как можно назначить значение в lastEntry, можно назначить String. Я пытаюсь ... для (String i: lastEntry) { System.out.println (i); его не работает .. не могли бы вы помочь – John

+0

Если вы имеете в виду имя файла, то используйте метод getName() – Danis