Я хочу прочитать в простом текстовом файле и сохранить его как 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());
}
Это способ читать в этих строках и помещать их в список массивов.
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();
}
Просто подсказка:
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()
массив.
list
переменных нет. Вы объявили какarray_list
.