Datei auf korrekte Struktur prüfen

javad

Grünschnabel
Hallo

ich bekomme vom Kunden eine Text/CSV Datei als Upload, die eine vordefiniertes Struktur
enthalten muß (je Zeile 20 Felder kommasepariert, leere Felder erlaubt).
Wie kann ich die Datei Zeile für Zeile auf korrektes Format prüfen ?

Gruß und Danke im Voraus
 
Hallo!

Schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.io.File;
import java.io.FileNotFoundException;
import java.text.MessageFormat;
import java.util.Scanner;

/**
 * @author Tom
 * 
 */
public class CSVFileChecker {

    int fieldCount;

    String delimiterPattern;

    public CSVFileChecker(int fieldCount, String delimiterPattern) {
        this.fieldCount = fieldCount;
        this.delimiterPattern = delimiterPattern;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        new CSVFileChecker(20, ",").validate(new File("c:/test.csv"));

    }

    private void validate(File file) {
        try {
            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                validateLine(line);
            }

            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }

    private void validateLine(String line) {
        if (!(line.split(this.delimiterPattern).length == fieldCount)) {
            throw new Error(
                    MessageFormat
                            .format(
                                    "illegal line: {0}\nColumns required: {1} Columns found: {2}",
                                    new Object[] {
                                            line,
                                            fieldCount,
                                            line.split(this.delimiterPattern).length }));
        }
    }
}

Gruß Tom
 
Wow, vielen Dank erstmal,
das hilft mir enorm weiter ;)

Das ganze ist als Vorabprüfung gedacht (wenn Upload-Dateistruktur fehlerhaft, dann in directory_error verschieben).

Alternativ zum File-Upload können die Datei-Werte auch per Web-Interface eingegeben werden.
Danach soll der Inhalt der Felder (also selbe Feldanzahl im Web-Interface) aus CSV-Datei oder
Web-Interface mit derselben Java-Methode geprüft werden.

Kann ich da eine Methode nehmen oder ist das bei CSV/Textfiles zu umständlich ?

Gruß nochmals
 
Zuletzt bearbeitet:
Zurück