Separateur virgule CSV Java
Rouliliii
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Voila j'ai un petit programme qui me découpe mon fichier CSV.
Cependant j'avoue bloquer sur quelque chose de simple je penses, mon fichier CSV utilise "," comme séparateur de colonne et je souhaiterai dire à mon programme que lorsqu'il tombe sur une virgule alors il passe au mot suivant.
Merci d'avance pour votre aide :)
Voici mon programme :
Voila j'ai un petit programme qui me découpe mon fichier CSV.
Cependant j'avoue bloquer sur quelque chose de simple je penses, mon fichier CSV utilise "," comme séparateur de colonne et je souhaiterai dire à mon programme que lorsqu'il tombe sur une virgule alors il passe au mot suivant.
Merci d'avance pour votre aide :)
Voici mon programme :
var dateDay = java.util.Date();
var format = new java.text.SimpleDateFormat("yyyyMMdd")
_out = new java.io.BufferedWriter(new java.io.OutputStreamWriter(new java.io.BufferedOutputStream(new java.io.FileOutputStream("%x{$GestFiles_001_IN/tech:path()}x%/Servicenow_" + format.format(dateDay)+".csv")),"CP1252"));
_in = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.BufferedInputStream(new java.io.FileInputStream("%x{$GestFiles_001_IN/tech:path()}x%/Servicenow_tmp_" + format.format(dateDay)+".csv")),"CP1252"));
_in_n = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.BufferedInputStream(new java.io.FileInputStream("%x{$GestFiles_001_IN/tech:path()}x%/Servicenow_tmp_" + format.format(dateDay)+".csv")),"CP1252"));
var current_line = null;
var to_write = null;
try {
// Gestion header
current_line = _in.readLine();
_out.write(current_line + "\r\n");
next_line = _in_n.readLine();
// Gestion Data
next_line = _in_n.readLine(); // At this step, current_line is the row number 1, next_line the number 2
do {
current_line = _in.readLine();
next_line = _in_n.readLine();
to_write = current_line;
// While there is justification in the next line, concatenate on the same line
while (next_line != null && !(next_line.startsWith("\"PRJTASK")) && !(next_line.startsWith("\"_-ERRE-"))&& !(next_line.startsWith("\"B-"))&& !(next_line.startsWith("\"R-"))){
to_write = to_write + " " + next_line;
next_line = _in_n.readLine();
current_line = _in.readLine(); // Do not make a gap with next_line
}
if (to_write != null){
_out.write(to_write + "\r\n");
}
} while (current_line != null);
}
finally {
_in.close();
_in_n.close();
_out.close();
}
1 réponse
-
Bonjour,
Vu ton code ce n'est pas vraiment du Java que tu fais (et ça m'a l'air bien compliqué). C'est quel langage exactement ?
Sinon tu peux faire un split sur un String pour récupérer les différentes colonnes séparées par ta virgule.
String[] columns = line.split(",");-
Bonjour KXX,
effectivement c'est du rhino et on m'a dit que ça ressemblait au Java.
Merci pour ta réponse- En fait Rhino est une implémentation de JavaScript en Java (qui sont deux langages distincts) et là tu mélanges les deux langages puisque tu mets des instructions Java dans ton JavaScript dans le but de ne faire quasiment que du Java avec Rhino (donc du Java en JavaScript écrit en Java...)
Ce ne serait pas plus simple de faire directement du Java dans ce cas ?
-