BufferedReader/BufferedWriter schreibt nicht alle Bytes

cheat.008

Aktives Mitglied
Hallo,

Es soll ein Foto kopiert werden, jedoch schreibt der BufferedWriter 35 Bytes zu wenig in die Ausgangsdatei(Kopie) bzw. der BufferedReader liest zu wenig.
Stimmt etwas mit meinem Code oder der Vorgehensweise nicht?
(Fotokopie mit FileOutputStream hat alles kopiert, aber nicht Teil der Aufgabe).
Hat jemand eine Idee?
Danke!

Code:
       BufferedReader br = new BufferedReader(new FileReader("C://foto.jpg"));
       BufferedWriter bw = new BufferedWriter(new FileWriter("C://foto_buffered.jpg"));
    
       String line = null;
       do
       {
           line = br.readLine();
           if(line == null) break;
           else bw.write(line);
      
       }while(true);
  
  
       br.close();
       bw.close();
 
Zuletzt bearbeitet:
Ein JPEG ist keine zeilenorientierte und textbasierte Datei. Ein BufferedReader und String ist dafür eher nicht die richtige Wahl, da der BufferedReader ja per Plattformencoding aus den beliebigen Bytes im JPEG Bild ein String bildet. Und so wie es aussieht, willst du doch nur die Datei kopieren, also:
Java:
Files.copy(
        new File("C:/foto.jpg").toPath(),
        new File("C:/foto_buffered.jpg").toPath(),
        StandardCopyOption.REPLACE_EXISTING);
 

Neue Themen


Zurück
Oben