If you do a split of the lines and a map or even a list to save each position will have no problem, then each line is just looping for each element resulting from the split.
The example below is very simplified, but it will give you a sense of how to proceed. See, I can pick up the last elements "unknowingly" as many as they have on the line. Similarly, you have to make a for the country.length to iterate over the various elements of your csv.
file.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. ReadCVS.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();
}
}
}
}
}