mit folgendem Programmcode sollte ich eigentlich lokal Dateien kopieren können..
Bei Ausführung von "java CopySound d:\Temp\test.pdf d:\Dateien" kommt immer die Meldung <Zugriff verweigert>.
Woran liegt das?
Das Programmfragment:
Code:
import java.io.*;
public class CopySound {
public static void main(String[] args) {
if (args.length <= 1){
System.out.println("Es wurden zu wenig Dateinamen angegeben");
System.out.println("Es wwerden die Namen der Quell- und Zieldatei benoetigt.");
}
else{
try {
File inFile = new File(args[0]);
File outFile = new File(args[1]);
FileInputStream in = new FileInputStream(inFile);
FileOutputStream out = new FileOutputStream(outFile);
int c;
while ((c=in.read()) != -1);
out.write(c);
in.close();
out.close();
}catch (IOException e){System.out.println(e);}
}
}
}
Alles klar, Danke euch..
Da habe ich nicht zu Ende gedacht...
Aber nun kopiere ich z.B. eine *.pdf Datei. Will ich sie anschließend mit einem Reader öffnen, wird die Datei als beschädigt angezeigt. Die Dateigröße liegt auch immer bei 1kb.
Natürlich sollten Dateien Endungen habe und ich selbst würde wohl
auch Magenziehen bekommen, wenn ich eine Datei ohne Endung schreibe.
Nichtsdestotrotz ist es aber nicht zwingend, daß Namen ohne Endung
Dateien sein können (makefile (*x UND Windows)) oder umgehrt.
Mehr wollte ich eigentlich gar nicht sagen mit meinem Post sagen, nur
das es mir auffiel, daß das Wörtchen vermutlich, an eine andere
Stelle verschoben, aus einer halbwahren Aussage eine vollkommen
richtige Aussage gemacht hätte.
das vermutlich war - im Nachhinein betrachtet - da eh unsinng.
Wenn das ein Verzeichnis, wovon ich mal implizit ausgegangen ist, dann kann man dort mit der Konstruktion eh nicht schreiben. Damit gehörte das vermutlich dort nicht hin, da es impliziert, dass es an den Schreibrechten auf das Verzeichnis lag.
Mehr wollte ich eigentlich gar nicht sagen mit meinem Post sagen, nur
das es mir auffiel, daß das Wörtchen vermutlich, an eine andere
Stelle verschoben, aus einer halbwahren Aussage eine vollkommen
richtige Aussage gemacht hätte.
Nur leider war genau diese Annahme, dass es sich um ein Verzeichnis handelt, absolut korrekt und hat das Problem des Threaderstellers gelöst. Von daher war der Kommentar mehr als kontraproduktiv für das Thema.
Im übrigen braucht man wohl auch nicht jedes Wort auf die Goldwaage legen. Das ist ein Java - und kein Linguistik-Forum. :roll: Ich glaube, es wusste jeder wie es gemeint war. Oder müssen wir beim nächsten Mal auch noch klären, dass wir bei Java nicht von der Insel sondern der Programmiersprache reden? :bae:
Also mein endgültiger Code ist gleich dem Code im Eröffnungsposting.
Nun rufe ich
java CopySound D:\Datei\dateiname.pdf D:\Temp\dateiname.pdf
auf und er kopiert etwas.
Aber ausser Dateiname ist die Datei nicht wirklich konsistent.
Gemeiner Fehler :wink: Mach mal das Semikolon hinter dem while weg; im Moment wird die Datei in der Schleife nur gelesen; das write ist zwar eingerückt, steht aber nicht im Schleifenkörper und wird daher nur einmal ganz am Ende durchlaufen (mit der -1).
Mir wär das Semikolon mit Klammern wesentlich früher aufgefallen. Ohne Klammern siehts halt beim drübergucken aus wie zwei Statements. Mit Klammern sieht man das was Faul is, denn ; { sieht man sonst nicht wirklich häufig.
Aber es bleibt ja jedem selbst überlassen, ob er sich an Konventionen hält oder nicht. :roll: