CSV-Datei-Validierung mit Java
Lese ich eine Datei zeilenweise, wie folgt:
FileReader myFile = new FileReader(File file);
BufferedReader InputFile = new BufferedReader(myFile);
//Read the first line
String currentRecord = InputFile.readLine();
while(currentRecord != null) {
currentRecord = InputFile.readLine();
}
Aber wenn andere Arten von Dateien hochgeladen werden, wird es noch Lesen deren Inhalte. Zum Beispiel, wenn die hochgeladene Datei ein Bild ist, wird es ausgegeben wird junk-Zeichen, wenn die Datei gelesen wird. Also meine Frage ist: wie kann ich die Datei CSV für Sie sicher vor es zu Lesen?
Überprüfung der Erweiterung der Datei ist eine Art von lame da jemand hochladen kann die Datei nicht im CSV-hat aber einen .csv-Erweiterung. Vielen Dank im Voraus.
InformationsquelleAutor | 2009-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bestimmung der MIME-Typ einer Datei ist nicht etwas einfach zu tun, vor allem, wenn ASCII-Abschnitte gemischt werden kann mit binären Einsen.
Tatsächlich, wenn Sie Blick auf, wie ein java-mail-system unterstützt bestimmen Sie den MIME-Typ einer E-Mail, es tut beinhalten liest alle bytes, die in es, und die Anwendung einiger "Regeln".
Check-out MimeUtility.java
Erwähnt mmyers in einem gelöschten Kommentar, JavaMimeType soll, das gleiche zu tun, aber:
:
So... seit Sie Lesen alle Inhalte der Datei sowieso, Sie nutzen konnten, um zu bestimmen, den Typ, basierend auf Inhalt und Ihren eigenen Regeln.
InformationsquelleAutor VonC
Java Mime Magic von nutzen sein kann. Werde es analysieren, mime-Typen von Dateien und inputstreams Ich kann nicht bürgen für Funktionalität, jedoch.
Dieser link können weitere info. Es bietet verschiedene Möglichkeiten der Bestimmung, wie zu tun, was Sie wollen (oder zumindest so etwas ähnliches).
Ich würde vielleicht geneigt sein, etwas zu schreiben, speziell auf Ihre problem-Domäne. z.B. Bestimmung der Anzahl von durch Komma getrennten Werte pro Zeile und ablehnen, wenn es nicht innerhalb bestimmter Grenzen. Teilen Sie Sie dann auf die Kommas und analysieren Sie jeden Eintrag, der nach Bedarf (z.B. sind Sie doubles/floats/gültig Streicher - und wenn die strings, welche Codierung). Ich denke, Sie müssen dies tun, eh, gegeben, dass jemand kann hochladen einer Datei beginnt, die wie ein CSV, jedoch ist beschädigt halbem Weg durch.
InformationsquelleAutor Brian Agnew