# Frage zur Exception java.net.MalformedURLException: unknown protocol:



## RalU (12. August 2010)

Hallo,
ich erzeuge ein JDOM Document für eine XML-Datei und les es mit
doc = saxbuilder.build(String pfadzurdatei) ein.
Das klappt alles soweit, sogut - es sei denn, ich verwende z.B. einen Dateinamen im "pfadzurdadei" der Sonderzeichen enthält, wie z.B. ein 'ß'. Dann wird die Exception geworfen java.net.MalformedURLException: unknown protocol: f. f ist die Bezeichnung des Laufwerks, von der der Pfad ausgeht, also F:.

Welche Möglichkeiten gibt es, dieses Problem zu beheben, so dass auch Dateien und Pfadangaben mit Sonderzeichen möglich sind?

Was mich auch etwas stutzig mach ist die Aussage der Fehlermeldung f wäre ein unbekanntes Protokol. Das stimmt zwar auch, aber warum funktioniert es dann mit Dateien ohne Sonderzeichen?

Gruß, Ralf


----------



## sheel (12. August 2010)

Nur so ins Blaue geraten: Schreib mal "file://" davor


----------



## RalU (12. August 2010)

Nene, das wäre ja zu einfach . Ich habe das Problem anders gelöst. Und zwar meinen String der den Pfad zur Datei angibt zunächst mit Hilfe eines FileInputStream in ein File-Objekt gewandelt und dieses File-Objekt dem saxbuilder anstelle des Strings mitgegeben. Klappt wunderbar. Ich denke der saxbuilder wandelt alles was er als Parameter innerhalb seiner Methode build() erhält zunächst in ein Objekt vom Typ URL um bevor er weiter arbeitet. Jo, und URL kann nunmal keine Sonderzeichen enthalten.


----------



## SPiKEe (12. August 2010)

generell sollte man auch auf seinem eigenen file-system sonderzeichen in pfad und dateinamen komplett verzichten da dies nicht nur zu höherem platzanspruch der meta-daten führt *order und datei namen werden in meta-daten meist als UTF gespeichert* sondern auch beim auslesen mit anderen systemen / sprachen / programmen zu sehr interressanten nebeneffekten führen *aus eigener erfahrung : 500GB platte nach dem einlesen eines solchen datennames komplett formatiert *fragt mich nicht wie .. ich weis nur das**
aber da heutige system immer kompatibler mit sowas werden und auch besser damit umgehen können rede ich bei den meisten damit gegen die wand


----------

