Wyklad8 StrumienieSerializacjaPliki

background image

Wykład 8

Strumienie, serializacja,

pliki

dr inż. Maciej Kusy

Katedra Podstaw Elektroniki

Wydział Elektrotechniki i Informatyki

Politechnika Rzeszowska

Programowanie w języku C#

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

2

Plan wykładu

• Strumienie

- operacje we/wy binarne i tekstowe
- odczyt i zapis danych (pliki binarne i tekstowe)

• Serializacja

- pojęcie serializacji i deserializacji, rodzaje
serializacji
- używanie formatera

• Manipulowanie katalogami
• Używanie plików

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

3

Strumienie

Strumień to wprowadzanie i wyprowadzanie
informacji od źródła do ujścia. W strumieniu
dane płyną jak pęcherzyki powietrza w
strumieniu wody
.

Punktem docelowym strumienia może być
konsola, plik, drukarka, połączenie z siecią lub
internetem.

Platforma .NET udostępnia strumienie
buforowane i niebuforowane oraz klasy do
obsługi operacji wejścia-wyjścia.

Źródłem strumienia może być np. klawiatura,
plik...

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

4

Operacje we/wy binarne i
tekstowe

Operacje we/wy tekstowe – strumień
przesyła jakąś informację i dodatkowo ją
formatuje (interpretuje). Formatowanie
sprawia, że wartości obiektów, stają się
czytelne dla użytkownika, np.:
double d = 123.456;
System.Console.WriteLine(d);

Operacje we/wy binarne – strumień „nie
interesuje się” znaczeniem bajtów, które
przesyłane są od źródła do ujścia. Bajty nie są
interpretowane w żaden sposób (komunikacja z
programem, urządzeniem). Odbywa się tylko
ich przepływ przez strumień.

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

5

Odczyt i zapis danych

Klasa Stream odpowiedzialna jest za odczyt i
zapis danych.

Obsługuje synchroniczne i asynchroniczne operacje we/wy

.

Klasa Stream udostępnia liczne klasy
pochodne, np.:
BufferedStream – udostępnia mechanizm
buforowania, FileStream – umożliwia dostęp
do plików,
NetworkStream – działa poprzez połączenia
sieciowe,
StreamReader – odczytuje dane z łańcuchów
znaków,

StreamWriter – zapisuje dane do łańcuchów
znaków.

Klasa Stream odpowiedzialna jest za odczyt i
zapis danych.

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

6

Serializacja

Serializacja – proces konwertowania
obiektu (lub kolekcji obiektów) na format
nadający się do zapisania w pamięci, pliku,
bazie danych.

Deserializacja jest procesem odwrotnym –
serializowany strumień bajtów
konwertowany jest z powrotem do postaci
oryginalnego obiektu (lub kolekcji
obiektów).

Serializacji używa się również do przesyłania
danych za pośrednictwem sieci (np. poprzez
usługi Web Service).

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

7

Rodzaje
serializacji

Serializacja binarna: wykorzystuje klasę

BinaryFormatter do serializowania typu danych

do postaci strumienia binarnego,

Serializacja protokołu SOAP: wykorzystuje klasę

SoapFormatter do serializowania typu danych do

postaci kodu języka XML zgodnego ze standardami

protokołu SOAP (Simple Object Access Protocol),

Serializacja do formatu XML: wykorzystuje

klasę XmlSerializer do serializowania typu

danych do postaci kodu języka XML (stosowany

przez usługi sieciowe Web Service).

W technologia .NET zaimplementowano
obsługę trzech głównych rodzajów
serializacji:

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

background image

8

Proces serializacji binarnej

Stwórz obiekt

FileStream

:

FileStream fs = new FileStream(path,
FileMode.Create);

Stwórz obiekt

BinaryFormatter

:

BinaryFormatter bf = new BinaryFormatter();

Dokonaj serializacji kolekcji obiektów – metoda

Serialize

:

ArrayList lista = new ArrayList();
bf.Serialize(fs, lista);
fs.Close();

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

Serializowana klasa musi mieć atrybut

[Serializable]

Dokonaj deserializacji – metoda

Deserialize

:

fs = new FileStream(path, FileMode.Open);
ArrayList nowa = (ArrayList)bf.Deserialize(fs);
fs.Close();

background image

9

Manipulowanie
katalogami

Wybrane składowe klasy DirecoryInfo:
CreationTime – pobiera i ustawia czas utworzenia
katalogu,
Exists – zwraca true jeśli katalog istnieje,
FullName – zwraca pełną ścieżkę dostępu do
katalogu,
Parent – zwraca katalog nadrzędny katalogu,

Create(), Delete() – tworzy, usuwa katalog,
GetDirectories() – zwraca tablicę podkatalogów,
GetFiles() – zwraca listę plików katalogu.

Klasa DirectoryInfo udostępnia metody do
pobierania nazw zawieranych plików, katalogów,
pozwala pobrać podkatalogi i sprawdzić ich
zawartość.

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

DirectoryInfo dir = new DirectoryInfo(path);

background image

10

Używanie plików

CopyTo() – metoda kopiująca istniejący plik do
nowego
katalogu,
Create() – metoda tworząca plik,
Delete() – metoda usuwająca określony plik z
dysku,
MoveTo() – metoda przenosząca plik do nowej
lokalizacji.

Klasa FileInfo przypomina pod względem
funkcjonalności odpowiednik – klasę
DirectoryInfo. Udostępnia przydatne operacje
związane z plikami, np.:

Programowanie w języku C#. Maciej Kusy,
mkusy@prz.edu.pl

Name – właściwość zwracająca nazwę pliku,
Length – właściwość zwracająca rozmiar pliku
w bajtach,
CreationTime – właściwość zwracająca datę i
godzinę
utworzenia pliku (obiekt
DateTime).


Document Outline


Wyszukiwarka

Podobne podstrony:
Wykład 2 strumienie rekurencyjne
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04
geriatria p pokarmowy wyklad materialy
ostre stany w alergologii wyklad 2003
WYKŁAD VII
Wykład 1, WPŁYW ŻYWIENIA NA ZDROWIE W RÓŻNYCH ETAPACH ŻYCIA CZŁOWIEKA
Zaburzenia nerwicowe wyklad
Szkol Wykład do Or
Strategie marketingowe prezentacje wykład
Wykład 6 2009 Użytkowanie obiektu
wyklad2

więcej podobnych podstron