Avec Java:
J'ai un byte[]
qui représente un fichier.
Comment écrire ceci dans un fichier (ie. C:\myfile.pdf
)
Je sais que c'est fait avec InputStream, mais je n'arrive pas à le résoudre.
Utiliser Apache Commons IO
FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray)
Ou, si vous insistez pour travailler pour vous-même ...
try (FileOutputStream fos = new FileOutputStream("pathname")) {
fos.write(myByteArray);
//fos.close(); There is no more need for this line since you had created the instance of "fos" inside the try. And this will automatically close the OutputStream
}
try {} finally {}
pour garantir un nettoyage correct des ressources.Sans aucune bibliothèque:
Avec Google Guava :
Avec Apache Commons :
Toutes ces stratégies nécessitent que vous interceptiez également une exception IOException à un moment donné.
la source
Une autre solution utilisant
java.nio.file
:la source
C:\myfile.pdf
cela fonctionnerait de toute façon sur Android ...;)Depuis Java 7 également, une ligne avec java.nio.file.Files:
Où data est votre octet [] et filePath est une chaîne. Vous pouvez également ajouter plusieurs options d'ouverture de fichier avec la classe StandardOpenOptions. Ajoutez des lancers ou entourez avec try / catch.
la source
Paths.get(filePath);
place denew File(filePath).toPath()
À partir de Java 7 , vous pouvez utiliser l' instruction try-with-resources pour éviter les fuites de ressources et faciliter la lecture de votre code. Plus à ce sujet ici .
Pour écrire votre
byteArray
fichier dans un fichier, vous devez:la source
Essayez un
OutputStream
ou plus spécifiquementFileOutputStream
la source
En fait, vous seriez écrit à une sortie de fichier ...
la source
la source
//////////////////////////// 1] Fichier en octet [] ///////////////// //
/////////////////////// 2] Octet [] vers le fichier //////////////////// ///////
la source
Exemple de base:
la source
Il s'agit d'un programme dans lequel nous lisons et imprimons un tableau de décalage et de longueur d'octets à l'aide de String Builder et écrivons le tableau de longueur de décalage d'octets dans le nouveau fichier.
` Entrez le code ici
O / P dans la console: fghij
O / P dans un nouveau fichier: cdefg
la source
Vous pouvez essayer Cactoos :
Plus de détails: http://www.yegor256.com/2017/06/22/object-oriented-input-output-in-cactoos.html
la source