Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


CSV Dateien validieren mit Java

Zusammenfassung:

Die Seite beschreibt die Validierung von CSV-Dateien mit Hilfe von Java.

CSV Dateien validieren mit Java

Das folgende Java-Programm liest eine CSV-Datei sequenziell mit Hilfe 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})?$

muß 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;
 }

qrpic/CSV_java.jpg

wg / 14. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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