, прежде чем вы сможете инициализировать ваш многомерный массив строк, вам необходимо знать его размер, который аналогичен вашему максимальному размеру столбца (в случае, если строки не имеют одинакового количества «токенов») и количеству строк какое количество строк у вас есть.
int row = 0;
int col = 0;
String fileInput = JOptionPane.showInputDialog(null,
"Please enter the path of the CSV file to read:");
File file = new File(fileInput);
BufferedReader bufRdr;
bufRdr = new BufferedReader(new FileReader(file));
String line = null;
ArrayList<StringTokenizer> arrayOfNumbers = new ArrayList<StringTokenizer>();
//read each line of text file
while((line = bufRdr.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line,",");
arrayOfNumbers.add(st);
int actColCount = st.countTokens();
if (col < actColCount) {
col = actColCount;
}
}
row = arrayOfNumbers.size();
теперь вы можете перебирать сохраненные строки и помещать их в свой массив. может быть, возникли некоторые исключения ArrayOutOfBound, которые не слишком детализированы. но это должно сделать.
String[][] numbers = new String[row][col];
for (int i=0; i<row; i++) {
StringTokenizer st = arrayOfNumbers.get(i);
int j = 0;
while(st.hasMoreElements()) {
numbers[i][j] = st.nextElement();
j++;
}
}
, пожалуйста, будьте осторожны с теми полями в массиве, которые не имеют значения, потому что в этой строке было недостаточно элементов для заполнения каждого столбца / поля в этой строке. эти поля возвращают ноль.