Dateiart erkennen

Status
Nicht offen für weitere Antworten.
S

scooterJava

Gast
Mit Java (und auch mit C, C++, ...) kann ich ja nicht erkennen, welchen Dateityp eine Datei hat, wenn ich nicht die Dateiendung zuhilfe nehmen will oder prüfe, ob eine bestimmte Signatur vorhanden ist.

Aber gibt es eine Möglichkeit zu prüfen, ob ich eine Binär- oder Textdatei vorliegen habe? Ich dachte schon daran, beispielsweise die ersten 100 Bytes zu prüfen, ob einige Zeichen aus einem Codebereich oberhalb des Alphabets vorkommen. Dann fiel mir ein: Es gibt ja auch Unicode ...
 
S

Spacerat

Gast
@Leroy: Das ist dann genau der Ansatz... Nicht jede Binärdatei ist eine Text-Datei
Zuerst versuchen, die Datei mit einem "Reader" zu lesen, eine eventuelle Exception abfangen und anschliessend einen "InputStream" verwenden. Natürlich muss dem Reader vorher gesagt werden, welcher Zeichensatz verwendet werden soll, weil er sonst gnadenlos auch alles Binäre in einen (dann mehr oder weniger unleserlichen) String einliest.

mfg Spacerat
 

Ariol

Top Contributor
Code:
File file = new File("test");
System.out.println(file.toURI().toURL().openConnection().getContentType());

Hilft das?
 

Ariol

Top Contributor
?
Habs hier mit einer lokalen PNG-Datei ausgeführt (Endung gelöscht) und bekam
Code:
image/png
als Ausgabe.

Oder liegt das mal wieder am Linux ;-)
 

Wildcard

Top Contributor
Ariol hat gesagt.:
Oder liegt das mal wieder am Linux ;-)
Ich bin ich überrascht das die Java Implementierung da so clever ist im Falle eines Files den Content Type der Datei vom Dateisystem abzufragen, aber das funktioniert wohl wirklich nur mit Linux, wüsste nicht das Windows Content Types auf Dateisystemebene überhaupt kennt.
 

Wildcard

Top Contributor
Wer hätte gedacht was sich da in der URLConnection versteckt:
http://java.sun.com/javase/6/docs/api/java/net/URLConnection.html#guessContentTypeFromStream(java.io.InputStream)
Das wird dabei vermutlich verwendet. Wie akkurat die Ergebnisse sind, mag ich allerdings nicht zu beurteilen.
 

Ariol

Top Contributor
Da bleibt wohl nur Ausprobieren...

Ich kann's aber nicht in Ermangelung eines Windows-Systems
 
S

Spacerat

Gast
Ich misch mich mal ein...
Ich hoffe da hat noch niemand, um es auszuprobieren, Windows installiert. Wildcard hat den Nagel auf den Kopf getroffen. Das muss man im übrigen nicht ausprobieren. Ein Blick in den Quelltext von "URLConnection" genügt völlig, um Wildcards vermutung zu untermauern.

mfg Spacerat
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Dateiart ermitteln Allgemeine Java-Themen 9
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
I Best Practice Kreise erkennen Allgemeine Java-Themen 1
N Erkennen eines Programs Allgemeine Java-Themen 2
P Strukturänderungen/abnormalien in Logfiles automatisch erkennen Allgemeine Java-Themen 5
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
T Java Windows sounds erkennen Allgemeine Java-Themen 1
M Backslash erkennen Allgemeine Java-Themen 4
D Flasche Eingabe erkennen Allgemeine Java-Themen 4
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Datei zugriffe erkennen Allgemeine Java-Themen 25
A Großbuchstaben erkennen (Prozente) Allgemeine Java-Themen 2
U Erkennen, ob PC benutzt wird Allgemeine Java-Themen 4
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
S Generellen MausKlick am PC erkennen Allgemeine Java-Themen 1
J Erkennen, ob Programm in JAR (neues Problem) Allgemeine Java-Themen 7
B Erste Schritte Plugin erkennen und Class Dateien anzeigen lassen Allgemeine Java-Themen 3
T Sechsecke, erkennen von bestimmten Werten Allgemeine Java-Themen 9
M Erkennen, in welcher Methode sich die VM befindet Allgemeine Java-Themen 6
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
D IP / Domain in einem String erkennen Allgemeine Java-Themen 2
J jexcelapi - Erkennen von Sheets Allgemeine Java-Themen 3
B Mausbewegung im Thread erkennen (hoch/runter) Allgemeine Java-Themen 6
K Quadrat in einem Bild erkennen Allgemeine Java-Themen 33
D Regex Raute erkennen Allgemeine Java-Themen 2
F Groovy Erkennen geometrischer Formen in einem Kantenbild Allgemeine Java-Themen 4
K Wiederholungen in Datensatz erkennen?! Allgemeine Java-Themen 6
S Wörter ohne Leerzeichen erkennen Allgemeine Java-Themen 5
M Festplatte am Namen erkennen Allgemeine Java-Themen 2
A Erkennen welches Fenster bei windowDeactivated aktiviert wird? Allgemeine Java-Themen 2
C Reguläre Ausrücke Punkte im Satz richtig erkennen Allgemeine Java-Themen 6
J Exe Datei in Java erkennen??? Allgemeine Java-Themen 4
P Netzlaufwerke erkennen Allgemeine Java-Themen 3
H File Attribut bzw Link erkennen Allgemeine Java-Themen 5
DamienX Debug Modus zur Laufzeit erkennen Allgemeine Java-Themen 3
data89 Barcodes in Bild erkennen Allgemeine Java-Themen 17
G Wechseldatenträger erkennen Allgemeine Java-Themen 5
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
Daniel_L RTF - Format aus Zwischenablage erkennen und "einlesen"? Allgemeine Java-Themen 5
B Zeilenumbruch erkennen Allgemeine Java-Themen 22
H Dateiende erkennen, wie? Allgemeine Java-Themen 7
X Position eines Gegenstandes über Webcam erkennen Allgemeine Java-Themen 11
S unter UNIX - (symbolic) links erkennen? Allgemeine Java-Themen 12
D Datum korrekt erkennen Allgemeine Java-Themen 27
G Stringformen erkennen Allgemeine Java-Themen 8
N Endlosschleifen automatisiert erkennen (Code oder Laufzeit)? Allgemeine Java-Themen 6
G Größte zusammenhängende Fläche erkennen Allgemeine Java-Themen 3
K ersten programmstart erkennen Allgemeine Java-Themen 7
S JTree selektion erkennen und drauf reagieren Allgemeine Java-Themen 2
E Regexfrage (' erkennen) Allgemeine Java-Themen 4
C WindowStyle von Windows erkennen. Allgemeine Java-Themen 3
J Erkennen aus welchem Pfad das Jar gestartet wurde Allgemeine Java-Themen 6
B Erkennen welche Objekte den Heap verbrauchen? Allgemeine Java-Themen 2
MQue JButton erkennen Allgemeine Java-Themen 2
V Erkennen ob das Programm aus Jar File geladen wurde Allgemeine Java-Themen 9
T Einfachen Ton erkennen Allgemeine Java-Themen 7
R Hinzufügen von Dateien in einem Verzeichniss Auto. erkennen! Allgemeine Java-Themen 15
L objekte erkennen? Allgemeine Java-Themen 9
M Encoding automatisch erkennen Allgemeine Java-Themen 4
J Programmteile erkennen? Allgemeine Java-Themen 4
H Exception erkennen Allgemeine Java-Themen 10
S Farbe erkennen! Allgemeine Java-Themen 3
H existierende dateien erkennen Allgemeine Java-Themen 9
Natorion Erkennen ob das Programm mittels Jar-Datei oder class . Allgemeine Java-Themen 9
A Endlosschleifen automatisch erkennen Allgemeine Java-Themen 6
G String als Zahl erkennen Allgemeine Java-Themen 19

Ähnliche Java Themen

Neue Themen


Oben