2013-09-20 4 views
-2

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

00000000 100 80 100 20 20 40 50 
12345687 98 67 88 20 19 37 39 
89763465 67 79 90 18 16 35 44 

Я хочу прочитать первые номера, как один список и т. д.

public void studentData() throws IOException { 
    Scanner scanner = new Scanner(System.in); 

    ArrayList<String> list = new ArrayList<String>(); 
    System.out.println("Enter a file name: "); 
    String filename = scanner.nextLine().trim(); 

    filename.equalsIgnoreCase(filename); 
    File f = new File(filename); 
    Scanner file = new Scanner(f); 
    String fileText = file.nextLine(); 

    while (file.hasNext()){ 
     list.add(file.next()); 
    } 
    file.close(); 

Печать абсолютно ничего. Я был бы признателен за положительные отзывы. Благодаря!

+0

Вы можете добавить 'System.out.println (" файл имеет next ")' в свое время? Я не уверен, что это достигнуто. Если вы добавите печать, вы увидите, выполняется ли этот код – BackSlash

+0

Это не печать: «Введите имя файла:»? – Cruncher

+4

Нет смысла в этой строке 'filename.equalsIgnoreCase (filename);' –

ответ

0

ваш код работает,

несколько моментов:

если ваш файл не начинается с \n затем удалить

String fileText = file.nextLine(); 

и добавить:

for (String string : list) { 
      System.out.println(string); 
     } 

в конце, для вывода ваших значений.

+0

Если я это сделаю, он ничего не печатает – CBH

+2

@CBH Я на 99% уверен, что ваш метод срабатывает, может быть, 'FileNotFoundException', но у вас его есть в' try- catch' с пустым блоком 'catch', поэтому вы не видите, что исключение выбрано ... Я ошибаюсь? – BackSlash

0

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

вы можете хранить каждую строку чисел в списке вы определили его как это:

Scanner scanner = new Scanner(System.in); 

    ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>(); 
    System.out.println("Enter a file name: "); 
    String filename = scanner.nextLine().trim(); 

    filename.equalsIgnoreCase(filename); // dose't do anything?!!!! 
    File f = new File(filename); 
    Scanner file = new Scanner(f); 
    //String fileText = file.nextLine(); this line removed the first line of txt 

    while (file.hasNext()) { 
     list.add(new ArrayList(Arrays.asList(file.nextLine().replaceAll("\\D+",",").split(",")))); // this line is what you need 
    } 
    file.close(); 

я надеюсь, что ваши потребности

Смежные вопросы