Dekoratory w Javie

0

Witajcie
Słuchajcie, mam mały problem. Chodzi o opakowywanie strumienie w Javie zarówno tych bajtowych, jak i tych tekstywoych.
Widziałem wiele przykładów, ale one i tak nie wytłumaczyły mi jednej rzeczy. Jaką nalezy się kierować zasadą przy robieniu np. czegoś takiego:

DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("plik.txt")));

Jaka jest zasada mówiąca, o tym jak nalezy opakowywać obiekty I/O??
dzięki wielkie za poradę

0

Zasada jest taka, ze otwierasz dokumentacje i sprawdzasz czy np. DataInputStream jest w stanie przyjac BufferedInputStream (lub jego klase nadrzedna/interfejs) i czy BufferedInputStream przyjmie jako parametr FileInputStream. O to pytasz?

pozdrawiam
johny

0

W zasadzie tak ale chcę jasnej odpowiedzi na takie pytanie:
Kiedy mam na przykłąd zdefiniowane źródło, to co mogę jeszcze zrobić z tym źródłem (analogicznie z wyjściem)?
Czy hierarchia interfejsów InputStream lub OutpUtstream w czymś pomaga jeśli chcemy źródło opakować?

0

Nie do konca rozumiem obu pytan :/

  • co to znaczy, ze masz zdefiniowane zrodlo?
  • co znaczy hierarchia interfejsow?

pozdrawiam
johny

0

źródło/wejście czyli np. plik tekstowy mamy - czyli źródełko, z któego chcemy czytać.
Pytanie jest takie: co możemy juz z takim źródłem zrobić?
FileInputStream fp = new FileInputstream("plik.txt"); // co z tym możemy zrobić i dlaczego tak?
(chodzi mi o dekoratory rzecz jasna) :)

0

Ogolnie jest to tak ze kierujesz sie funkcjonalnoscia. FileInputStream wczytuje same bajty lub ich tablice,
a ty np chcesz zeby bylo buforowane to, wiec opakowujesz w BufferedInputStream i juz jest. Zalozmy ze nagle nie chcesz juz czytac sanych bajtow tylko typy prymitywne, wiec opakowujesz w DataInputStream ktory ma odpowiednie do tego metody. Czyli po prostu trzymasz referencje do takiego typu ktorego metody chcesz wykorzystac, i dlatego musisz to zrobic w odpowiedniej kolejnosci.
nie wiem czy dobrze wytlumaczylem ale sie staralem
pozdro600

0

Dzięki stary
Właściewie to orientuję sie w tych sprawach natomiast uważam, że trochę jest to I/O trochę zamotane ale jeśli miałbym coś napisaćw I/O to nie miałbym problemów bo wiem, ze mozna cos z wejściem i wyjściem zrobić.

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