Je suis vraiment confus sur le but de diverses classes IO, par exemple, si nous avons BufferedWriter, pourquoi nous avons besoin d'un imprimeur?
BufferedReader reader = new BufferedReader(new FileReader(file)); String line = null; while(s=br.readline()!=null) { PrintWriter fs = new PrintWriter(new FileWriter(file)); fs.println(s); }
3 Réponses :
Ils n'ont rien à voir les uns avec les autres. En toute vérité, j'utilise rarement C'est donc édité: p>
Ce est déjà venu p> imprimeur code> sauf pour convertir
system.out code> temporairement. Mais de toute façon. P>
bufferedWriter code>, comme
bufferedreader code> /
bufferedInputStream code> /
bufferedOutPutStream code> décore simplement l'écrivain code> > Avec un tampon de mémoire (vous pouvez spécifier la taille) ou accepter une valeur par défaut. Ceci est très utile lorsque vous écrivez sur des écrivains ralentis comme le réseau ou le fichier basé. (Les trucs sont commis en mémoire et seulement de manière occasionnelle à un disque, par exemple) en tamponnage en mémoire, la vitesse est considérablement augmentée - essayez de rédiger un code qui écrit un fichier de 10 Mo avec juste
FileWriter CODE>, puis comparez à la Idem avec
bufferedWriter code> enroulé autour de lui. p>
bufferedWriter code>. Il jette quelques méthodes de commodité, mais surtout, cela fournit simplement ce tampon de mémoire. P>
imprimeur code> est un simple décorateur qui ajoute certaines méthodes d'écriture spécifiques pour différents types tels que
string code>,
float code>, etc., donc vous ne pouvez pas " t faut tout convertir en octets bruts. P>
L'imprimeur trois caractéristiques: p>
code> est essentiellement une classe de commodité. Si vous voulez rapidement et facilement éliminer une ligne de texte à par exemple. Un fichier journal, un imprimeur le rend très facile. P>
impression code> et
printLN code> prendra tout type de données em> et faire la conversion pour vous. Pas seulement
chaîne code>. Li>
System.out code> ou
system.err code> qui ont peu de façons d'aller mal. LI>
ul>
La principale raison d'utiliser l'imprimeur est d'accéder aux méthodes PrintXXX (comme PrintLN (int)). Vous pouvez essentiellement utiliser un imprimeur pour écrire dans un fichier comme vous utiliseriez System.out pour écrire sur la console. P>
Un bufferedWriter est un moyen efficace d'écrire dans un fichier (ou autre chose) car il va tamponner les caractères de la mémoire Java avant d'écrire dans le fichier. P>
Hood, ces classes Java Io "Stream" sont vraiment déroutantes. Je peux facilement grokser InputStream, ProvityStream (juste des octets) et les versions tamponnées, mais au-delà de cela, il devient confondre.
Il y a 2 raisons principales pour lesquelles ces types de classes sont différentes: 1. Capacités de mise en mémoire tampon 2. Capacités supplémentaires dans les nouvelles versions Java, qui tentent de ne pas confondre de nouvelles méthodes existantes, mais plutôt de créer une nouvelle classe en induisant le développeur pour vérifier le développeur pour vérifier le " @since 'Javadoc Element