Entra

View Full Version : libreria IO JAVA come pattern Decorator


vittorio130881
22-01-2015, 11:01
ragazzi sul libro che sto studiando spiega molto bene il pattern Decorator.
sto cercando di applicarlo alla libreria io di java (in quanto sono legati dice il libro). in particolare

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

BufferedReader è un Concretedecorator che amplia le funzionalità di un ConcreteComponent quale è InputStreamReader. entrambi derivano come dice il pattern da Reader.

BufferedReader aumenta le potenzialità di InputStream grazie a readline() che aiuta non poco a leggere in maniera decente un input da tastiera.
ma mi chiedevo: readline() secondo il pattern dovrebbe ad un certo punto cmq utilizzare nella sua implementazione il metodo read() di new InputStreamReader(System.in) affinchè sia utile il pattern stesso, giusto? altrimenti cosa lo si passa a fare l'inputSteamReader? scusate ma l'implementazione di readline () non la trovo sulla documentazione......

forse è una domanda complessa........e magari non sono risucito a spiegarmi.......nel qual caso ignoratela pure....grazie come al solito ragazzi

vittorio130881
22-01-2015, 14:57
no no
giuro che è una pura curiosità didattica........se non serve saper ste cose.......via avanti cosi tanto mi sembra piuttosto semplice!
grazie

vittorio130881
23-01-2015, 08:30
grazie coffee
ora domanda piu concreta :)

public class CloseResources {
public static void copyFile(String source, String destination) throws IOException
{ InputStream inputStream = new FileInputStream(source);
OutputStream outputStream = new FileOutputStream(destination);
try { byte[] byteBuffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = inputStream.read(byteBuffer)) >= 0)
outputStream.write(byteBuffer, 0, bytesRead); }
finally { outputStream.close(); inputStream.close(); } } }




io non capisco una cosa dell'IO. come vengono collegati fra loro inputstream e outputstream. il metodo write di outputstream accetta un INTERO??? intero che viene restiruiro da read su u bytesbuffer....mi spiegate cosa fa sto coso?? :)

[Kendall]
23-01-2015, 08:46
grazie coffee
ora domanda piu concreta :)

public class CloseResources {
public static void copyFile(String source, String destination) throws IOException
{ InputStream inputStream = new FileInputStream(source);
OutputStream outputStream = new FileOutputStream(destination);
try { byte[] byteBuffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = inputStream.read(byteBuffer)) >= 0)
outputStream.write(byteBuffer, 0, bytesRead); }
finally { outputStream.close(); inputStream.close(); } } }




io non capisco una cosa dell'IO. come vengono collegati fra loro inputstream e outputstream. il metodo write di outputstream accetta un INTERO??? intero che viene restiruiro da read su u bytesbuffer....mi spiegate cosa fa sto coso?? :)

Viene ben spiegato nella documentazione relativa: http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html

Ricorda di consultarla sempre, è uno strumento fondamentale per chi programma e devi abituarti ad usarla.

vittorio130881
23-01-2015, 09:23
hai ragione kendall.
la uso spesso ultimamente. non pensavo però spiegasse perfettamente il metodo read e write.
grazie dei mille consigli che mi state dando.