michael80: Kopieren eines Bildes

Hallo Leute,

ich möchte mit JAVA eine simple Kopie von einem Bild erstellen. Dazu habe ich mir folgenes Überlegt:

--
import java.io.*;
public class readinPiC {

public static void  main (String[] args) {
 String dateiname = "pic.bmp";
 String zeile;

try {
    BufferedReader einlesen = new BufferedReader(new FileReader(dateiname));
    FileOutputStream fout = new
    FileOutputStream ("pic2.bmp");
    PrintStream myOut = new PrintStream(fout);
    while ((zeile = einlesen.readLine()) != null){
      myOut.println(zeile);
    }
    einlesen.close();
   }
   catch (IOException e){
     System.out.println("Fehler beim Einlesen");
   }

}
}

--

Leider entspricht die Kopie des Bildes (also pic2.bmp) nicht mehr dem Original. Kann mir einer sagen warum und besser noch, wie ich es beheben kann?

Besten Dank Micha

  1. Hi,

    BufferedReader einlesen = new BufferedReader(new FileReader(dateiname));

    Leider entspricht die Kopie des Bildes (also pic2.bmp) nicht mehr dem Original. Kann mir einer sagen warum und besser noch, wie ich es beheben kann?

    Auf den schnellen Blick:
    Weil Du zum Einlesen von Binärdaten einen Reader verwendest, welcher die Binärdaten bereits beim Lesevorgang interpretiert und dadurch (mit 9,999% Wahrscheinlickeit) verändert. Auch der PrintStream auf Ausgangsseite hat eine vergleichbare Funktion.
    Du benötigst also Input-/und OutputStreams, die die Binärdaten unverändert lassen.

    Viele Grüße,
    Martin Jung

    1. Hey Danke!

      Wenn man weis wo nach man suchen muss gehts auch ein wenig leichter ;-)

      Micha

      1. Hallo michael80,

        Martin hat Dir doch gesagt, dass Du Input-/OutputStreams verwenden sollst.
        Welche von java.io.InputStream bzw java.io.OutputStream abgeleiteten Klassen kommen denn da wohl in Frage, wenn man Dateien lesen/schreiben will?
        Schau doch einfach mal in die Java Api Spezifikation

        Grüße

        Daniel

        1. Hi Daniel,

          ich glaube (besser: hoffe), dass hier ein kleines Missverständnis vorliegt (***). Ich glaube, Michael wollte sich für den Wink mit dem Zaunpfahl bedanken.

          ***: wegen des smileys

          Viele Grüße,
          Martin

          1. Hallo Martin,

            Du hast wohl recht. Ich bin schon so gewohnt, hier fragen zu suchen zu müssen, wo keine stehen, dass ich nicht mehr merke, wenn es mal wirklich keine Frage sein soll ;-)

            Grüße

            Daniel