C# – Zapis i odczyt danych, strumienie.

Loading Likes...

Zapis i odczyt danych, należą do elementarnych zagadnień, które powinien znać programista. Dlatego warto poświęcić im trochę czasu aby je dobrze opanować.

Strumienie są jednym ze sposobów przesyłania danych do i z programu. Za każdym razem, gdy  aplikacja np. zapisuje lub odczytuje plik wykonuje operację związaną z wysyłaniem lub odbieraniem bajtów, używa w tym celu właśnie strumieni. Różne strumienie zapisują i odczytują różne rzeczy. Każdy strumień jest pochodną abstrakcyjnej klasy Stream. Trzeba w tym miejscu wymienić minimum trzy najczęściej wykorzystywane klasy pochodne:

  • FileStream – zapis i odczyt danych w plikach
  • MemoryStream – zapis i odczyt danych w obszarach pamięci
  • NetworkStream – zapis i odczyt danych na innych komputerach lub urządzeniach w sieci.

Kilka informacji ogólnych

  • Aby móc używać strumieni, potrzebna jest nam biblioteka System.IO.
  • Podczas pracy ze strumieniami bardzo ważne jest by pamiętać o zamykaniu strumieni. Podczas pracy np. z plikami tekstowymi, pliki będą zablokowane, do czasu aż strumień nie zostanie zamknięty.
  • Do strumienia możesz wpisać dane tekstowe lub binarne, używając w tym celu jego metody Write().
  • By pobrać dane z pliku, pamięci, sieci lub czegokolwiek innego co korzysta ze strumieni, możesz użyc metody Read().
  • Można odczytywać dane z naprawdę dużych plików, nawet tak dużych, że się nie mieszczą w pamięci.
  • Większość strumieni udostępnia metodę Seek(), która umożliwia określenie położenia w strumieniu i wykonywanie w tym miejscu operacji odczytu lub zapisu danych

Oczywiście C# przyzwyczaja nas do bardzo wygodnych rozwiązań, udostępniając klasy radzące sobie w prostszy sposób. Takimi klasami są m.in.:

  • StreamReader
  • StreamWriter

Korzystając z takiej klasy wystarczy nam tylko uchwyt do pliku, by móc np. dopisać tekst. Utworzony w ten sposób obiekt, automatycznie tworzy obiekt FileStream i otworzy wskazany plik. Przykładowy kod wyglądałby następująco:

You May Also Like

About the Author: Jerzy Kołakowski

Pasjonat informatyki, bloger. Full-stack Developer Technologie:
  • ASP.NET MVC
  • ASP.NET CORE
  • Angular 2+

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Facebook
Inline
Inline