1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| public class CsvFileReader {
//<editor-fold defaultstate="collapsed" desc="Variables">
private static final String FILE_NAME = "test.csv";
private File file;
private char SEPARATOR = ',';
private List<String> lines;
/*Chaque objet de cette liste contient toutes les informations que t'as
récupéré pour une ligne*/
private List<Article>data;
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Constructeurs">
public CsvFileReader() {
this.file=new File(FILE_NAME);
init();
}
public CsvFileReader(File file) {
if(file!=null)
this.file = file;
else
this.file=new File(FILE_NAME);
init();
}
private void init(){
/*Toutes les lignes du fichier sont stockées dans l'objet lines*/
lines = readFile(file);
/*On supprime les entetes*/
lines.remove(0);
data = new ArrayList<>();
String sep = new Character(SEPARATOR).toString();
for(String line: lines){
/*Je me suis rendu compte que lorsque deux séparateurs se suivent il
ne compte pas le champ entre les deux,alors je met un espace entre
chaque doublon de séparateurs*/
String lineTemp = line.replace(SEPARATOR+""+SEPARATOR,SEPARATOR+" "+SEPARATOR);
lineTemp = line.replace(""+SEPARATOR+SEPARATOR,SEPARATOR+" "+SEPARATOR);
String[] oneData = lineTemp.split(sep);
data.add(new Article(oneData[0],oneData[1],oneData[7],oneData[15],oneData[14],oneData[23],oneData[22]));
}
}
/* Quant à mon readFile il s'agit tout simplement de celui du CsvFileHelper */
public static List<String> readFile(File file) {
List<String> result = new ArrayList<String>();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
for (String line = br.readLine(); line != null; line = br.readLine()) {
result.add(line);
}
br.close();
fr.close();
return result;
}
} |
Partager