Direkten (schreib-)Zugriff auf Diskette (\\.\A:)
-
Hallo!
Ich habe ein kleines Dateisystem in C++ geschrieben und möchte es nun in Java übersetzen. Dazu muss ich direkten Lese- und Schreibzugriff auf das Diskettenlaufwerk haben. Da das Programm nur unter windows laufen soll, kann ich ja auch den windows spezifischen Gerätetreiber verwenden (also \.\A: ).
Das Lesen des Laufwerkes ist kein Problem:
inputStream = new FileInputStream("\\\\.\\A:");
Doch das schreiben funzt nicht:
outputStream = new FileOutputStream("\\\\.\\A:");
->
java.io.FileNotFoundException: \\.\A: (Falscher Parameter)
Weiß einer Rat?
[EDIT]
Das Diskettenlaufwerk springt zwar an, aber die Exception tritt auf.
[/EDIT]
-
ein dateinsystem? wieso?
-
Ist das jetzt wichtig?
Bitte um konstruktive Beiträge...
-
Der FileInputStream ist wohl dazu da, Files zu lesen, aber a: ist kein File.
Mich würde schon interessieren warum du ein dateinsystem schreiben willst.
-
GCoder schrieb:
Hallo!
Das Lesen des Laufwerkes ist kein Problem:
inputStream = new FileInputStream("\\\\.\\A:");
Kannst du da wirklich was lesen (inputStream.read(bytes))? Oder doch nur den stream öffnen?
-
Ja, ich kann lesen.
Wenn ich ne Diskette mit dem C++ Programm formatiert habe, kann ich diese Diskette mit dem Java-Programm lesen. Also Dateinamen auslesen, größe, sektorbeginn und ende...Außerdem kann ich die einzelnen Dateien kopieren. Aber nur von Diskette nach HDD, nicht von HDD nach Diskette...
-
wirklich schrieb:
Der FileInputStream ist wohl dazu da, Files zu lesen, aber a: ist kein File.
Doch. In diesem Fall schon. Mit CreateFile kann ich ja auch in C++ lesen und schreiben... (naja, jedenfalls ein Handle für diese "Datei" bekommen, und damit dann lesen und schreiben...)
wirklich schrieb:
Mich würde schon interessieren warum du ein dateinsystem schreiben willst.
Einfach nur so, weil es mich interessiert. Und das eigentliche System ist ja fertig. Nur das Java-Control-Panel nicht...
-
Und wie siehts mit RandomAccessFile aus?