Newsgroup: it.comp.java
Titolo: OutputStream - PrintWriter

C'è qualcuno che mi spiega in breve che differenza concettuale
c'è tra OutputStream e PrintWriter?
Grazie

 c'è tra OutputStream e PrintWriter?
In poche parole:
PrintWriter discende da java.io.Writer ed in quanto tale è orientato alla
scrittura di stream di _char_ (ovvero caratteri singoli, array di caratteri
o stringhe). Usando PrintWriter puoi scrivere tra l'altro rappresentazioni
testuali formattate dei diversi tipi di dati Java utilizzando i metodi della
famiglia print ("print" in inglese dà il senso di qualcosa di scritto bene,
con cura ed in modo leggibile.) Utilizzando le classi discendenti da Writer
bisogna inoltre considerare, di norma, l'encoding dei caratteri scritti.
Tieni conto del fatto che i caratteri encoded, quando vengono scritti su
file, occupano 2 bytes (unicode.)
OutputStream invece è la super classe astratta che serve a rappresentare gli
stream di _byte_. In linea di principio qualsiasi dato può essere scritto
sottoforma di sequenza di bytes e quindi le classi derivate da OutputStream
sono in un certo senso più generiche e non specificatamente orientate ai
_char_ come quelle derivate da Writer.
Marco.
--
Per scrivermi direttamente elimina
__TOGLIMI__ dall'indirizzo e-mail.

 writes:
PD> C'è qualcuno che mi spiega in breve che differenza concettuale
PD> c'è tra OutputStream e PrintWriter?
OutputStream è  innanzitutto una  classe astratta (quindi  non utiliz-
zabile direttamente).
La documentazione recita:
"This abstract class is the  superclass of all classes representing an
output  stream of  bytes. An  output stream  accepts output  bytes and
sends them to some sink. "
(Questa  classe astratta  è  la  superclasse di  tutte  le classi  che
rappresentano un flusso di byte in output. Un flusso di byte in output
accetta dei byte e li manda in un qualche "scarico")
PrintWriter è una sottoclasse di Writer (classe astratta che modella i
flussi di  _caratteri_ in uscita),  è direttamente utilizzabile  e se-
condo la documentazione
"Print   formatted  representations  of   objects  to   a  text-output
stream."
(Stampa una  rappresentazione formattata degli oggetti  verso un flsso
di output di  testo - ovvero spara fuori simboli formati  da più di un
byte)
In soldoni, OutputStream _è_  un modello non direttamente utilizzabile
di  un  flusso  di  byte  in  uscita,  PrintWriter  _è_  un'estensione
direttamente  utilizzabile  di  Writer   ed  _usa_  per  l'output  dei
caratteri un Writer o un OutputStream (in questo caso i caratteri sono
eventualmente tradotti in sequenze di byte).
Spero di non esser stato troppo impreciso.
\begin{echelon}
BATF Kennedy ammunition domestic disruption counter-intelligence
Honduras Rule Psix PLO NSA Semtex Saddam Hussein Ft. Meade
assassination bomb strategic
\end{echelon}
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+

 c'č tra OutputStream e PrintWriter?
Aggiungerei unicamente che PrintWriter č un filtro (ce ne sono tanti in
java.io
) che tra l'altro utilizza il separatore di linea nativo (\r\n in
Win, \n in Unix & co) per println. I filtri sono costruiti sui flussi
(OutputStream ad esempio) e li modificano.
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------