Bezposrednie uzycie klas InputStrean i OutputStream

0

Witajcie, ucze sie Javy i aktualnie jestem w temacie binarny zapis i odczyt z plikow. I tam korzysta sie ze strumieni FileInputStream i FileOutputStream lub opakowuje sie te powyzsze strumienie w DataInputStream lub DataOutputStream (pozwalaja one operowac nie tylko na bajtach, ale i na typach danych). I jest w lekcji wspomniane, ze InputStream i OutputStream nie bedzie uzywane w dalszej lekcji tylko strumienie, ktore pozwalaja operowac na plikach np. FileInputStream. W takim razie klasy InputStream i OutputStrem jakie maja bezposrednie uzycie? I pytanie brzmi czy mozna bezposrednio uzywac Input/Outputstream, jezeli tak to w jakich przypadkach? Monzna np. policzyc ilosc bajtow tablicy lub zmiennej np String/int tymi klasami? Czy jedyne one sluza do rozszerzania innych klas tj. FileOutputstream itd.?. Dzieki za odpowiedz.

1

InputStream stanowi ogólny interfejs dla strumieni. FileInputStream jest jego implementacją dla plików. Inne przykłady strumieni to np. strumień pakietów sieciowych w Socket, albo strumień znaków w buforze tekstowym.

1

Java InputStream i OutpusStream to klasy abstrakcyjne, a to opakowanie to zastosowanie wzorca projektowego decorator ;)
Na przykład chcesz zapisać obiekt do pliku.

 
FileOutputStream fileOutputStream  = new FileOutputStream(path);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);

fieOutputStream zapisze przekazane dane do pliku a objectOutputStream zserializuje obiekt. Mógłbyś tez przekazać np. ByteArrayOutputStream do ObjectOutputStreama i wtedy zserializowałbyś do byte[] .
http://stackoverflow.com/questions/6366385/decorator-pattern-for-io

0

Fakt klasy abstrakcyjne, a ja takie durnowate pytanie zadaje...

Dziekuje za odpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1