Était-ce utile?

La solution

Ceci est un grand sujet! Je recommande que vous commencez par lire I / O Streams :

  

Une I / O représente un flux d'entrée   la source ou une destination de sortie. UNE   flux peut représenter beaucoup de différents   types de sources et destinations,   y compris les fichiers de disque, périphériques, autres   programmes et réseaux de mémoire.

     

Prise en charge de nombreux types différents cours d'eau   des données, y compris les octets simples,   les types de données primitives, localisées   des personnages et des objets. certains cours d'eau   simplement transmettre des données; autres manipulent   et transformer les données de manière utile.

Autres conseils

Flux: un octet à la fois. Bon pour les données binaires.

Lecteurs / Writers: un caractère à la fois. Bon pour les données texte.

Anything "Buffered": nombre d'octets / caractères à la fois. Bonne presque tout le temps.

Lors de l'apprentissage Java J'ai fait ce schéma mental à propos java.io:

Flux

  • octet courant orienté (8 bits)
  • bon pour les données binaires comme un fichier Java
  • bon pour les données "axées sur la machine"

Les lecteurs / écrivains

  • char (UTF-16) orienté flux (16 bits)
  • bon pour le texte, comme une source Java
  • bon pour les données "axées sur l'homme"

Buffered

  • toujours utile, sauf preuve du contraire

Séparer chaque nom en mots:. Chaque capital est un autre mot

  • Fichier d'entrée flux est d'obtenir Entrée Fichier en utilisant Flux .
  • Flux de sortie du fichier est d'écrire Sortie Fichier en utilisant Flux

Et ainsi de suite et ainsi de suite

mmyers écrit:

  

Streams:. Un octet à la fois

     

Lecteurs / Writers:. Un caractère à la fois

     

* Buffered: nombre d'octets. / Caractères à la fois

J'ai aussi trouvé cette java_tip_how_read_files_quickly

Très utile! Il indique les cours d'eau sont les plus efficaces.

Les spécialisations que vous mentionnez sont des types spécifiques utilisés pour fournir une interface standard à une variété de sources de données. Par exemple, un FileInputStream et un ObjectInputStream sera à la fois mettre en œuvre l'interface InputStream, mais fonctionneront sur des fichiers et des objets respectivement.

Ceci est probablement la vue d'ensemble la plus complète des différents cours d'eau, du lecteur et écrivain de l'API Java IO:

http://tutorials.jenkov.com/java-io/overview.html

Il fait partie d'un tutoriel Java IO plus couvrant les flux à base octets et CARACTÈRE.

Il couvre également les cours d'eau qui sont utilisés pour la lecture et l'écriture des données numériques brutes, comme celle du flotteur de int, etc.

Il couvre également les cours d'eau utilisés pour l'analyse syntaxique comme le PushbackInputStream et le PushbackReader.

flux d'octets sont la plupart du temps et largement utilisé type de flux en Java 1.0 pour le caractère et par octet. Après java 1.0 il a été dépréciée et flux de caractères joue un rôle important. ie., par exemple

BufferedReader obtiendra le caractère de la source, et son constructeur ressemble BufferedReader (lecteur inputReader) ..

Ici Reader est une classe abstraite et une fois de ses classes concrètes sont InputStreamReader, qui convertit les octets en caractères et prendre les entrées du clavier (System.in) ...

BufferedReader: Contient la mémoire tampon interne qui va lire les caractères du flux. compteur interne conserve la trace de caractère suivant à fournir au tampon à travers lecture (). InputStreamReader prend volonté entrée en octets et convertit en interne en caractères.

Java entrée et de sortie est définie en termes d'un concept abstrait appelé « courant », qui est une séquence de données. Il existe 2 types de cours d'eau.

  • flux d'octets (8 octets de bits) → Résumé Les classes sont: InputStream et OutputStream
  • flux de caractères (16 bits UNICODE) → Abstract classes sont: Reader et Writer

* java.io. classes utilisent le modèle de conception de décorateur. Le modèle de conception de décorateur attache responsabilités à l'égard des objets à l'exécution. Décorateurs sont plus souples que l'héritage parce que l'héritage attache la responsabilité des classes au moment de la compilation. Les java.io. * classes utilisent le modèle de décorateur pour construire différentes combinaisons de comportement lors de l'exécution sur la base des cours de base. entrer image description ici href="https://i.stack.imgur.com/7iEl4.png" rel="nofollow noreferrer">

du livre Java / J2EE Companion entrevue d'emploi K.Arulkumaran & A.Sivayini

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top