Ich versuche eine Datei lesen (spielt keine Rolle) und schreibe danach, aber wenn ich es mache, unterscheidet sich die Ausgabedatei von der Eingabe.Beim Lesen und Schreiben einer Datei ändert sich die Ausgabe
mein Code ist die nächste:
OutputStream outputStream = null;
FileReader fr = new FileReader("rute\\inputfile.PNG");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line= br.readLine()) != null) {
content += line;
}
byte[] toBytes= content.getBytes();
InputStream inputStream = new ByteArrayInputStream(toBytes);
try {
outputStream = new FileOutputStream(new File("rute\\output.PNG"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
inputStream.close();
Wenn Sie mich fragen, warum in Bytes konvertiert und von dieser Form zu schreiben, ist, weil ich mit den Daten etwas tun müssen, und ich brauche diese Umwandlung. Wenn Sie uns sagen, dass ich auf einem String ein Bild laden kann nicht, ja ich so etwas tun können:
File fil = ~~~~;
FileInputStream fis = null;
fis = new FileInputStream(fil);
byte[] bytess = IOUtils.toByteArray(fis);
aber ich nicht es tun will, auf diese Weise, weil, wenn ich große Dateien will laden, die Heap-Größe ist nicht genug und das könnte durch die "Zeile pro Zeile" gelöst werden.
Vielen Dank für Ihre Antworten
was ist die Frage? –
Wie kann ich die Datei lesen und schreiben, ohne sie zu ändern, oder was das Problem/Grund, warum die Ausgabedatei nicht die gleiche wie die Eingabe ist? –