Conseils

Comment lire et écrire des flux d'octets

Comment lire et écrire des flux d'octets

La lecture et l'écriture de flux binaires sont l'une des tâches d'E / S les plus courantes qu'une application Java peut effectuer. Cela peut être effectué en examinant chaque octet dans un flux ou en utilisant une approche plus structurée en mémoire tampon.

Remarque: Cet article examine la lecture de données binaires à partir d’un

exemple.jpgfichier. Si vous essayez ce code alors remplacez simplement le nom du

exemple.jpgavec le chemin et le nom d'un fichier jpeg sur votre ordinateur.

Byte par Byte

le

java.ioLa classe était la première API Java à fournir des fonctionnalités d'entrée / sortie. Il a deux méthodes qui peuvent être utilisées pour entrer et sortir des flux d'octets (blocs de 8 bits) depuis et vers un fichier. Ces cours sont les

FileInputStreamet

FileOutputStream. Ces méthodes fournissent une méthode de base d'E / S en permettant à un fichier d'être entré ou sorti octet par octet. En pratique, il est préférable d’utiliser une méthode en mémoire tampon pour les flux binaires, mais il est bon de regarder le bloc de construction le plus élémentaire de la fonctionnalité d’E / S Java.

Notez comment nous plaçons la gestion des E / S dans un

essayer, attraper, enfinblock-this est pour nous assurer de gérer les exceptions d'E / S et de fermer correctement les flux. Le bloc catch affichera toutes les exceptions d'E / S qui se produisent et imprimera un message pour l'utilisateur. Dans le bloc finally, il est important de fermer explicitement les flux en appelant la méthode close, sinon ils resteront ouverts et constitueront un gaspillage de ressources. Il y a un contrôle pour voir si le

FileInputStreamet

FileOutputStreamsont nuls avant de tenter de fermer. Cela est dû au fait qu'une erreur d'E / S peut survenir avant l'initialisation des flux. Par exemple, si le nom du fichier est incorrect, le flux ne sera pas ouvert correctement.

essayerbloquer nous pouvons ajouter du code à lire dans les octets:

lisméthode lit dans un octet de la

FileInputStreamet la méthode write écrit un octet sur le

FileOutputStream. Lorsque la fin du fichier est atteinte et qu'il n'y a plus d'octets à entrer, la valeur -1 est renvoyée.

Maintenant que Java 7 est disponible, vous pouvez constater l’avantage de l’une de ses nouvelles fonctionnalités, le bloc try with resources. Cela signifie que si nous identifions les flux dans le bloc try au début, celui-ci gérera la fermeture du flux pour nous. Ceci élimine le besoin du bloc finally dans l'exemple précédent:

Les listes de codes Java complètes pour les deux versions du programme de lecture d'octets sont disponibles dans Exemple de code de flux binaire.


Video, Sitemap-Video, Sitemap-Videos