Como converter um arquivo CSV em um vetor em Java
Soluções para a tarefa
Olha se fizer um split das linhas e um mapa ou até mesmo uma lista para guardar cada posição não terá problema, depois a cada linha é só fazer um loop interando por cada elemento resultante do split.
O exemplo abaixo é bastante simplificado, mas servirá para te dar um norte de como proceder veja, que posso pegar os ultimos elementos "sem saber" quantos possuem na linha. De forma análoga, terá de fazer um for até o pais.length para iterar sobre os diversos elementos do seu csv.
arquivo.csv
"1.0.0.0","1.0.0.255","16777216","16777471","AU","Australia"
"1.0.1.0","1.0.3.255","16777472","16778239","CN","China"
"1.0.4.0","1.0.7.255","16778240","16779263","AU","Australia"
"1.0.8.0","1.0.15.255","16779264","16781311","CN","China"
"1.0.16.0","1.0.31.255","16781312","16785407","JP","Japão"
"1.0.32.0","1.0.63.255","16785408","16793599","BR","Brasil"
"1.0.64.0","1.0.127.255","16793600","16809983","JP","Japão"
"1.0.128.0","1.0.255.255","16809984","16842751","DK","Dinamarca"
stack.LeiaCVS.java
package stack;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class LeiaCVS {
public static void main(String[] args) {
LeiaCVS obj = new LeiaCVS();
obj.run();
}
public void run() {
String arquivoCSV = "arquivo.csv";
BufferedReader br = null;
String linha = "";
String csvDivisor = ",";
try {
br = new BufferedReader(new FileReader(arquivoCSV));
while ((linha = br.readLine()) != null) {
String[] pais = linha.split(csvDivisor);
System.out.println("País [code= " + pais[pais.length-2]
+ " , name=" + pais[pais.length-1] + "]");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Salvar as linhas de um arquivo CSV em uma matriz int.
Exemplo:
Faz a leitura do CSV, pega uma coluna e salva ela em uma das colunas da matriz int.
Se a segunda coluna do CSV é:
1
2
3
A matriz int deve ser:
Int[0][0][0] = 1
Int[0][1][0] = 2
Int[0][2][0] = 3
De tal forma q se eu for acessar ela fora da leitura do CSV em outro método eu possa chamar tipo:
Int[0][1][0]
E vai aparecer o 2.
Só q tem q salvar todas as colunas do CSV