У меня возникли трудности при создании ArrayList файлов ...ArrayList файлов
Я пытаюсь иметь набор текстовых файлов, которые я могу тогда процесс. Я не знаю количество файлов, которые могут быть добавлены в эту коллекцию.
Это то, что я пытаюсь ...
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Menu");
System.out.println("Add - Adds a file");
while (sc.next().equalsIgnoreCase("Add")) {
getDocs();
}
}
public static void getDocs() {
Scanner sc = new Scanner(System.in);
ArrayList<File> allFiles = new ArrayList<>();
allFiles.add(new File(sc.nextLine()));
System.out.println(allFiles.toString());
}
Println будет показывать только самый последний файл добавлен в ArrayList, и он также не показывает текст в файле, поэтому я полагаю, мой ArrayList не работает, как я хочу ...
значение выходной я ожидал бы ...
Menu
Add- adds a file
add
C://somepath//file1
This is the text in file 1
add
C://somepath//file2
This is the text in file 1
This is the text in file 2
, хотя, все, что действительно важно, что все эти файлы находятся в коллекции, и Я могу вытащить и прочитать эти файлы позже в программе. Спасибо, что посмотрели
Вы хотите добавить файлы также в коллекцию, в которую пользователь вводит? И нет места для диалогового окна или что-то в этом роде? Вам нужно проверить, является ли файл допустимым файлом или вы просто предполагаете, что пользователь дает вам, правильно? – DejaVuSansMono
Хехе, прежде всего, toString() просто печатает шестнадцатеричный код вашего объекта. Если вы хотите, например, показывать содержимое файла, у вас должна быть своя версия toString() с переопределением, которая будет печатать содержимое файла. Таким образом, у вас должен быть класс-оболочка, который будет обертывать файл (один за другим) и просто иметь метод toString() для печати его значения. Вместо этого ArrayList должен содержать классы Wrapper. – energizer
@energizer - нет, это не ... toString() печатает все, что хочет реализовать печать классов. _default_ 'Object.toString()' печатает адрес вашего объекта, но ArrayList переопределяет это и печатает список содержимого, разделенный запятыми. Вы не можете сделать (многие) общие утверждения о toString. –