CSV / CSV Dateien validieren mit Java

CSV Dateien validieren mit Java

CSV Dateien validieren mit Java

➪ Die Seite beschreibt die Validierung von CSV-Dateien mithilfe von Java.

Das folgende Java-Programm liest eine CSV-Datei sequenziell mithilfe der java.io.BufferedReader-Klasse und vergleicht jede Zeile (die Headerzeile natürlich ausgenommen) über die java.util.regex-Klassen Pattern und Matcher mit einem vorgegebenen regulären Ausdruck.

Entgegen der vorher definierten Pattern-Definition


^[0-9]+;([A-Z]{1}[a-z]+;){2}[0-9]+(\.[0-9]{2})?$

muss in Java jedoch das Backslash "\", das den Punkt "." maskiert, ersetzt werden durch "\\", um das Backslash selbst zu maskieren.


^[0-9]+;([A-Z]{1}[a-z]+;){2}[0-9]+(\\.[0-9]{2})?$

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 public static boolean validiere_CSV_regexpr() {
  int izeile = 1;
  boolean isvalid=true;
  try {
   String sp;
   sp = "^[0-9]+;([A-Z]{1}[a-z]+;){2}[0-9]+(\\.[0-9]{2})?$";
   Pattern p = Pattern.compile(sp);
   Matcher m; 
   String zeile = ""; 
   BufferedReader r = new BufferedReader(
                 new FileReader("C:/wg/csv.txt"));
   while((zeile = r.readLine()) != null) {
    if(izeile>1) { 
     // erste Zeile ist die Headerzeile, wird ueberlesen
     m = p.matcher(zeile);
     if(!m.matches()) {
      System.out.printf("Fehler in %d\t%s\n", izeile, zeile);
      isvalid=false;
     }
    }    
    izeile++;
   }
   r.close();
   if(isvalid) 
    System.out.println("Validierung: die Datei ist korrekt");
   else 
    System.out.println("Validierung: die Datei ist fehlerhaft");
  } catch (FileNotFoundException e) {
   System.out.println(e.getMessage());
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }  
  return isvalid;
 }

wg / 14. Oktober 2017



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/CSV_java.html