Java ввода / вывода читать в многострочном файле и хранить как ArrayList

1

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

0.2253 
0.808 
0.132 
0.341 

4.18546
8.65418
1.45535
0.341

and so on...

Они всегда будут четыре строки, и они всегда будут разделены пробелом. Каким-то образом я хотел бы использовать это как точку останова, чтобы начать новый массив и выбрать резервную копию с первым новым номером в качестве нулевого индекса.

Номера должны храниться как строки.

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

[0][0] = 0.2253
[0][1] = 0.808
[0][2] = 0.132
[0][3] = 0.341

[1][0] = 4.18546
[1][1] = 8.65418
[1][2] = 1.45535
[1][3] = 0.341

как я могу это сделать, используя структуры java i/o?

java io arraylist

Пока у меня это..

    //array list data struc
    ArrayList<String> array_list = new ArrayList<String>();

    String component_doc = "/home/joao/document.txt"

    Scanner inFile = null;
    try 
    {
        inFile = new Scanner(new File(component_doc));
    } 
    catch (FileNotFoundException e) 
    {
        e.printStackTrace();
    }

    while(inFile.hasNextLine())
    {
        array_list.add(inFile.nextLine());
    }
  • 0
    Итак, что вы пытались сделать до сих пор?
  • 0
    Посмотрите на Двумерный ArrayList и список двухмерных массивов . Кстати, list переменных нет. Вы объявили как array_list .
Показать ещё 2 комментария
Теги:
arraylist
io

2 ответа

1
Лучший ответ

Это способ читать в этих строках и помещать их в список массивов.

import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;

protected static ArrayList<String> yourArrayList = new ArrayList<String>();
String fileName = "C:\\Users\\myComputer\\Desktop\\test_file.txt";
    try
    {
        List<String> lines = Files.readAllLines(Paths.get(fileName), Charset.defaultCharset());
        for (int i = 0; i < lines.size(); i++)
        {
            yourArrayList.add(lines.get(i).toString());
        }
    }catch(IOException io)
    {
        io.printStackTrace();
    }
0

Просто подсказка:

ArrayList<ArrayList<String>> array_list = new ArrayList<ArrayList<String>>(); //Create 2D arrayList

// open file and do all previous stuff 

ArrayList<String> item = new ArrayList<String>(); // Create 1D ArrayList 

while(inFile.hasNextLine())
     String str = nextLine(); 
     if (str.trim().length() == 0) {  // is blank line?
         if (item.size() > 0) array_list.add(item); // Store 1D arrayList into 2D 
         item = new ArrayList<String>();  // Create new 1D arrayList
     }
     else { 
          item.add(strLine); // Add each element to 1D arrayList
     } 
} 

Примечание. Это экземпляр ArrayList, поэтому вы не можете получить к ним доступ с помощью array_list[X][Y]. Вы можете попробовать метод .toArray() чтобы преобразовать его в настоящий 2- .toArray() массив.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню