If you make a split of the lines and a map or even a list to store each position you will have no problem, then to each line just make an interacting loop for each element resulting from the split.
The example below is quite simplified, but it will serve to give you a north of how to proceed see, that I can get the last elements "unknowingly" how many there are on the line. Similarly, you will need to go to.length to iterate over the various elements of your csv.
csv file.
"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();
}
}
}
}
}
Regardless of the solution adopted (there are 2 responses while writing), remember at all times, always validate the size of the array obtained from any input. So your code will be much more robust. Otherwise, if there is an unforeseen, such as an empty line at the end of the file (just to cite an example), the implementation will not break.
– utluiz
Thanks for the @utluiz tip, really helpful. Thank you.
– Erico Souza