Datei kopieren

soa

Erfahrenes Mitglied
Hallo,

habe hier ein kleines Programm zum kopieren einer Datei. Leider wird die Quelldatei nicht erkannt.
Ich bekomme immer eine FileNotFound Exception.

Die Zieldatei wird jedoch angelegt.

Code:
import java.io.*;
public class DatKop1{
	
	public static void main(String args[])throws IOException{
		
		BufferedReader in = new BufferedReader(
							new InputStreamReader(System.in));					
		
		
		System.out.println("Quelldatei eingeben:");
		String quelle = in.readLine();
		System.out.println("Zieldatei eingeben:");
		String ziel = in.readLine();
	
        kopieren(quelle, ziel);
    }//main
	
	public static void kopieren( String quelle, String ziel){
		
		try{
		//File-Objekt (Datei) wird erzeugt:
		File dat   = new File(quelle);
  		File datei = new File(ziel);
        
        
        //Leere Datei im Verzeichnis wird erzeugt
    	datei.createNewFile();
		
		
		FileInputStream in = new FileInputStream(dat);
		FileOutputStream out = new FileOutputStream(datei);
		
		int groesse = in.available();
		byte[] b = new byte[groesse];
	
		
		while ((groesse = in.read(b)) > 0){
		out.write (b, 0, groesse);
	}
	
		out.close();
		in.close();
	}
	
	catch (IOException e){
		System.err.println(e.toString());
	}
	
	}//kopieren geschlossen
}//Klasse

Kann mir hier vielleicht jemand einen Tipp geben, wo hier mein Fehler liegt

Vielen Dank

Gruß

SOA
 
Wie gibst Du die Quelle an? Als kompletten Pfad? Wenn nicht wird das wohl das Prolem sein . Am besten poste mal den Stacktrace.
 
Hallo,

eine FileNotFound Exception tritt beim lesen auf.
D.h. deine Quelldatei wird nicht gefunden. Du musst den kompletten Pfad mit angeben.

Der Code ist OK.
 
Moin,

vielen Dank für eure Beiträge.

Ich gebe aber immer den adsoluten Pfad an:
Es ahndelt sich bei meinem System um eine Fischkiste:-)

d:\java\readme Windows ist ja nicht case Sensitive


Ah, vielleicht muss ich immer noch die Dateibez. mit anhängen,

also .txt oder html z.B.

--------------
Stacktrace? Gehört hab ich das irgendwo schon einmal...

Gruß
SOA
 
Hallo,

du musst den kompletten Dateinamen mit Suffix benutzten .

Stacktrace, in deinem Fall stand da die "FileNotFound Exception" drin
Code:
     catch (IOException e)
    {
    	e.printStackTrace();
    }
oder wie deine Ausgabe ist:
Code:
catch (IOException e){
     		System.err.println(e.toString());
     }
 
1. wie Soa schon meinte musst Du den kompletten Dateinamen inkl. Suffix angeben
2. Windows mag case insensitive sein, Java aber nicht. Also so angeben wie die Datei heisst und dann wird sie auch gefunden.
 
Zurück