java - bufferedinputstream也需要指定一个数组长度呀?并没有什么用呀?
PHP中文网
PHP中文网 2017-04-17 17:48:10
0
3
715

他与fileinputstream 的区别是什么呀?他不是自带缓冲区吗?为什么还需要指定一个byte数组?

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(3)
阿神

Son cache et votre propre cache ne sont pas le même concept. Le processus général est le suivant.

Lors de l'utilisation d'inputstream sans mise en cache

Chaque fois que vous lisez, le système effectue une opération de lecture pour lire les données. Si vous spécifiez un octet à lire, il lira un octet, si vous spécifiez un tableau, il lira un tableau Le. différence entre votre programme et les données L'efficacité de la lecture a une excellente relation.

et lors de l'utilisation de bufferedinputstream, cela ressemble à ceci

Lorsque vous créez bufferedinputstream, il lira immédiatement les données et les mettra dans la mémoire gérée par jvm
A chaque fois que vous les lisez, il n'y retournera plus. . La lecture depuis le système le lira depuis la mémoire. Données , puis déterminez s'il reste beaucoup de choses dans la mémoire. Sinon, il demandera au système de lire l'opération. Que vous lisiez un octet ou un tableau, le système ne le fera pas nécessairement Fera fonctionner le disque dur.
La corrélation entre l'efficacité de votre programme et la lecture des données est très faible.

Pensez-y sous un autre angle,

Si vous utilisez un flux sans buffer, ouvrez le fichier puis fermez-le immédiatement, le système
ne fera aucun appel de données, et la fermeture sera exécuté rapidement. Et si vous ouvrez le fichier avec un flux tamponné, même s'il est fermé immédiatement sans lecture, la fermeture ne sera pas exécutée immédiatement, et le système
a déjà lu une partie des données dans la mémoire , ce qui sera moins efficace que d'utiliser sans tampon.

Bien sûr, personne ne s'ennuierait au point de créer un flux puis de le fermer sans le lire, n'est-ce pas ?

PHPzhong

Il n'y a aucune relation entre la mise en mémoire tampon et l'utilisation de tableaux pour recevoir du contenu. Cela ne signifie pas qu'avec la mise en mémoire tampon, il n'est pas nécessaire que les tableaux reçoivent du contenu.

Peter_Zhu

Parce que nous espérons réutiliser cet octet[], sinon face à une transmission d'E/S de flux de données volumineux, vous constaterez que YGC sera très heureux

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal