Отделить их от массивов внутри одной петли. Я бы рекомендовал использовать ArrayList, если вы не знаете количество строк в вашем файле csv.
Scanner scan = new Scanner(new File(copyUri));
ArrayList<String[]> records = new ArrayList<String[]>();
String[] record = new String[2];
ArrayList<String[]> a = new ArrayList<String[]>();
ArrayList<String[]> b = new ArrayList<String[]>();
ArrayList<String[]> c = new ArrayList<String[]>();
ArrayList<String[]> d = new ArrayList<String[]>();
while(scan.hasNext())
{
record = scan.nextLine().split(",");
a.add(record[0]);
b.add(record[1]);
c.add(record[2]);
d.add(record[3]);
records.add(record);
}
Другим менее эффективным решением является нахождение размера вашего списка записей, создавая свои массивы, используя этот размер и заполнение их с вашими данными.
Scanner scan = new Scanner(new File(copyUri));
ArrayList<String[]> records = new ArrayList<String[]>();
String[] record = new String[2];
while(scan.hasNext()) {
record = scan.nextLine().split(",");
records.add(record);
}
int rows = records.size();
String[] a = new String[rows];
String[] b = new String[rows];
String[] c = new String[rows];
String[] d = new String[rows];
int j = 0;
for (String[] temp : records) {
a[j] = temp[0];
b[j] = temp[1];
c[j] = temp[2];
d[j] = temp[3];
j++;
}
Третья идея, которую я получил, чтобы инициализировать массивы с определенным размером (например: 5) и изменить размер массива, как вы идете, но я считаю, что это не менее эффективно, так как вам придется переместить элементы в новый массив при каждом изменении размера.
Большое вам спасибо – Chrystian