Quelle est la différence entre FileInputStream et BufferedInputStream en Java?
Quelle est la différence entre FileInputStream et BufferedInputStream en Java?
Combiner this et ceci pour les réponses.
double possible de quelle est la différence entre l'utilisation de InputStream au lieu de FileInputStream tout en créant un objet fileinputstream
double possible de quelle est la différence entre l'utilisation de InputStream au lieu de FileInputStream tout en créant un objet fileinputstream
OriginalL'auteur Rohit | 2014-02-08
Vous devez vous connecter pour publier un commentaire.
Principales différences:
BufferedInputStream
est mis en mémoire tampon, maisFileInputStream
ne l'est pas.Un
BufferedInputStream
lit à partir d'un autreInputStream
, mais unFileInputStream
lit à partir d'un fichier1.Dans la pratique, cela signifie que tous les appels à
FileInputStream.read()
va effectuer un syscall (cher) ... alors que la plupart des appels àBufferedInputStream.read()
renverra les données de la mémoire tampon. En bref, si vous faites des "petits", lit, mettre unBufferedInputStream
dans votre flux de pile permettra d'améliorer les performances.Pour la plupart des cas /cas d'utilisation, c'est tout ce qui est pertinent.
Il y a quelques autres choses (comme la marque /reset /saut), mais ces derniers sont plutôt spécialiste ...
Pour de plus amples informations, lire la javadoc ... et le code source.
1 - Ou, plus précisément, à partir d'un objet qui 1) a un nom dans le système d'exploitation du "système de fichiers" espace de noms, et 2) que le système d'exploitation vous permet de lire comme une séquence d'octets. Cette peut englober les appareils, tubes nommés, et diverses autres choses que l'on ne pourrait pas considérer comme des "fichiers". Il est également intéressant de noter qu'il existe certains types de choses que certainement ne peut pas être lu à l'aide d'un
FileInputStream
.OriginalL'auteur Stephen C
Vous devez google ou à lire La documentation javadoc,
Un FileInputStream obtient les octets d'entrée à partir d'un fichier dans un système de fichiers. Quels fichiers sont disponibles dépend de l'environnement d'accueil.
FileInputStream est fait pour lire des flux d'octets brutes telles que les données de l'image. Pour la lecture des flux de caractères, pensez à utiliser FileReader.
Pour plus de détails: https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html.
Un BufferedInputStream ajoute des fonctionnalités à un autre flux d'entrée-à savoir, la capacité de la mémoire tampon à l'entrée et à l'appui de la marque et de réinitialiser les méthodes. Lorsque le BufferedInputStream est créé, une mémoire tampon interne tableau est créé. Des octets dans le flux de lecture ou ignorée, la mémoire tampon interne est remplie en tant que de besoin le contenu des flux d'entrée, le nombre d'octets à la fois. La marque de l'opération se souvient d'un point dans le flux d'entrée et l'opération de réinitialisation entraîne tous les octets lus depuis la dernière marque de fonctionnement soient relues avant de nouveaux octets sont prises à partir du contenu du flux d'entrée.
Pour plus de détails https://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html.
OriginalL'auteur Rajendra arora
OriginalL'auteur Chris Martin