J'ai quelques fichiers JPG qui doivent être remplacés à l'exécution avec une version standard JFIF d'eux-mêmes (nous utilisons un fournisseur qui nous donne des fichiers JPG qui n'ont pas d'en-têtes appropriés pour certaines applications) ... Je suis en mesure de créer un nouveau fichier de l'image existante, puis obtenir une image en mémoire tampon à partir de ce fichier et écrire le contenu de retour dans le fichier sans avoir à le supprimer et il fonctionne ...Java/Groovy File IO Remplacement d'un fichier image avec son propre contenu - Pourquoi cela fonctionne-t-il?
imageSrcFolder.eachFileMatch (~/.*\.jpg/, {
BufferedImage bi = ImageIO.read(it)
ImageIO.write(bi, "jpg", it)
});
la question J'ai pourquoi? Pourquoi le fichier ne finit-il pas doublé de taille? Pourquoi ne dois-je pas le supprimer en premier? Pourquoi suis-je capable de prendre un objet fichier dans un fichier existant et de le traiter comme si c'était un tout nouveau? Il semble que ce que je considère être un "fichier" n'est pas ce que l'objet File est réellement en java, sinon cela ne fonctionnerait pas du tout.
Mon code fait exactement ce que je veux faire, mais je ne suis pas convaincu que ce sera toujours ... il semble juste trop facile