# Datei kopieren und umbenennen



## rtt (25. Okt 2004)

Hi
gibt es eine Möglichkeit eine Datei (in meinem Fall ein jpeg) zu kopieren und unter einem anderen Namen zu speichern?

Danke für eure Hilfe.
Gruß Robin


----------



## CelikBlek (25. Okt 2004)

1. datei markieren
2. strg+c
3. strg+v

 :autsch:


----------



## Sky (25. Okt 2004)

Das Ganze geht natürlich auch mit JAVA:

1. Quell-File öffnen
2. Quell-File lesen (Inhalt unbedingt merken!)
3. Ziel-File öffnen
4. Ziel-File schreiben (hier wird der 'gemerkte' Inhalt aus der Quelldatei gebraucht)


----------



## CelikBlek (25. Okt 2004)

improvement


----------



## rtt (25. Okt 2004)

@CelikBlek
 :lol: 

@sky80
ich habe ja noch keine Zieldatei, die ich öffnen könnte.
Ich habe eine Ausgangsdatei in einem Verzeichnis und diese datei soll unter einem anderen Namen dupliziert werden (natürlich in Java   )

Bsp: err_pic.jpg soll im gleichen Verzeichnis dupliziert werden und in img101010.jpg umbenannt werden.

Gruß Robin


----------



## dotlens (25. Okt 2004)

dann erstelle die Datei zuerst...


```
File imgWasAuchImmer = new File(deinPfad, imgWasAuchImmer );
```


----------



## rtt (25. Okt 2004)

wie sieht das konkret mit dem öffnen und kopieren aus?
Bin noch neu in Java. 
Danke


----------



## Sky (25. Okt 2004)

```
File fSrc = new File("c:\\datei_1.jpg"); // Quelldatei 
      File fDes = new File("C:\\datei_2.jpg"); // Zieldatei
      FileInputStream fis = new FileInputStream(fSrc); //Stream fuer Quelldatei
      FileOutputStream fos = new FileOutputStream(fDes); //Stream fuer Zieldatei

      byte buf[] = new byte[1024]; // Buffer für gelesene Daten
      while ( fis.read(buf) != -1 ) { // solange lesen, bis EOF
        fos.write(buf); // Inhalt schreiben
      }
      fis.close();
      fos.flush();
      fos.close();
```


----------



## rtt (25. Okt 2004)

suppi,
danke sky80.
Funktioniert auf anhieb.
Gruß Robin


----------



## abollm (25. Okt 2004)

Für alle Interessierten: es gibt auch andere Methoden, eine Bilddatei zu kopieren.


```
...
            // Datei kopieren
            String inp_filename = "my_origin_jpg.jpg";
            String outp_filename = "my_destination_jpg.jpg";
            File f = new File(inp_filename);
            try {
                BufferedImage bimg = ImageIO.read(f); // URL geht auch ...
                // ...bimg
                ImageIO.write(bimg, "jpeg", new File(outp_filename));
                bimg.flush();
            }
            catch ( Exception e ) {}
            ...
```


----------



## dotlens (25. Okt 2004)

und was ist der vorteil dieser variante? wenn es einen gibt...


----------



## abollm (25. Okt 2004)

dotlens hat gesagt.:
			
		

> und was ist der vorteil dieser variante? wenn es einen gibt...


Na, z.B. brauchst du nicht mit zwei Streams zu hantieren.

Aber, es ging mir nicht nur um Performanz (oder, wenn du magst: Performance), sondern darum, dass man das Problem auch anders lösen kann.

BTW: "Buffered" ist im Regelfall meist ein "wenig" schneller.


----------



## Beni (25. Okt 2004)

Wobei allerdings das Umwandeln von einem Bit-Stream in ein Bild (besonders wenn es komprimiert wurde, wie z.B. JPEG) auch aufwendig sein kann ;-) 

Ich wäre nicht auf die Idee gekommen :applaus: , aber sie hat einen gravierenden Nachteil: sie funktioniert nur mit Bildern... (was ist im Textdateien? :wink: )


----------



## abollm (25. Okt 2004)

Die Aufgabe hier lautete ja, Bilder zu kopieren (schau einmal nach oben in das Ausgangsposting).


----------



## Sky (25. Okt 2004)

abollm hat gesagt.:
			
		

> Die Aufgabe hier lautete ja, Bilder zu kopieren (schau einmal nach oben in das Ausgangsposting).



Trotzdem ist eine generische Lösung, die auch andere Dateien kopieren kann, m.E. besser, da wiederverwendbar. Ich bin der Auffassung, dass man als Entwickler auch mal ein wenig über den Tellerrand der gestellen Aufgabe gucken sollte ;-)


----------

