Java convertit les fichiers en tableau d'octets
Mots-clés: fichier, flux de fichiers, flux octet, tableau d'octets, binaire
Résumé: L'exigence récente rencontrée dans le travail consiste à utiliser HTTP pour transmettre des données binaires à l'interface correspondante du serveur et une série de données binaires mixtes telles que l'utilisateur et le fichier (cryptées). Cet article vise à enregistrer des connaissances et un résumé de la conversion de fichiers en tableaux d'octets à l'aide de Java.
FileInputStream
Lire des fichiers avec FileInputStream
FileInputStream est une sous-classe de InputStream, qui est utilisée pour lire les informations à partir d'un fichier. Le constructeur reçoit un type de fichier ou un type de chaîne représentant le chemin du fichier.
File file = new File ("filepath"); fileInputStream fis = new FileInputStream (fichier); BytearrayoutputStream
Utilisez ByteArrayOutputStream pour lire les données du fichier dans FileInputStream
ByteArrayOutputStream est utilisé pour créer un tampon en mémoire, et toutes les données envoyées au "flux" doivent être placées dans ce tampon.
ByteArrayOutputStream bos = new ByteArrayOutputStream (fis); byte [] b = new byte [1024]; int len = -1; while ((len = fis.read (b))! = -1) {bos.write (b, 0, len);};Remarque: La méthode d'écriture de ByTearRayOutputStream a trois formulaires surchargés:
écrire (int b)
Écrire des octets spécifiés
écrire (octet [] b)
Écrivez à l'ensemble du tableau d'octets B
écrire (octet [] b, int off, int len)
Écrivez dans le tableau des octets B, commencez à partir de l'indice OFF de B et écrivez des octets Len.
Le second n'est pas utilisé ici, mais le troisième est utilisé. Dans le code, le nombre de lectures dans le tampon B est généralement 1024 (car la longueur spécifiée est affichée lorsque B est défini). Ce n'est que lorsque la fin est lue, ce n'est peut-être pas suffisant 1024 octets, et le nombre réel d'octets de lecture sera lu. Cependant, lors de l'écriture dans le tampon, si le nombre d'écritures n'est pas spécifié, c'est-à-dire que LEN n'est pas spécifié, alors le B entier sera écrit. Même s'il n'y a qu'une partie du contenu en B, 1024 octets seront toujours écrits. Cela entraînera le tableau d'octets résultant n'est pas la longueur réelle lors de l'utilisation de TobyTearray!
Cela écrit le flux de fichiers à partir de l'inputStream dans le bytearrayoutputStream.
Utilisez la méthode TobyTearray () de ByteArrayOutputStream pour obtenir le tableau d'octets du fichier.
Byte [] filebyte = bos.toByTearray ();
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!