J'essaie de lire un fichier (peu importe l'extension) et j'écris après cela, mais quand je le fais, le fichier de sortie est différent de l'entrée.Lors de la lecture et de l'écriture d'un fichier, la sortie change
mon code est le suivant:
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();
Si vous me demandez pourquoi convertir en octets et écrire à partir de ce formulaire, parce que je dois faire quelque chose avec les données, et j'ai besoin de cette conversion. Si vous me dites que je ne peux pas charger une image sur une chaîne, oui je peux faire quelque chose comme ça:
File fil = ~~~~;
FileInputStream fis = null;
fis = new FileInputStream(fil);
byte[] bytess = IOUtils.toByteArray(fis);
Mais je ne veux pas le faire de cette façon parce que si je veux charger de gros fichiers, la taille du tas Cela ne suffit pas et cela pourrait être résolu par la "ligne par ligne" lue.
Merci pour vos réponses
quelle est la question? –
Comment je peux lire et écrire le fichier sans le changer, ou quel est le problème/raison pour laquelle le fichier de sortie n'est pas le même que l'entrée? –