Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Практична робота №9





Тема: Реалізація засобів файлового введення-виведення.

Мета заняття: Поглибити знання і закріпити практичні навички з використання та реалізації засобів для роботи з файлами та папками. Навчитись використовувати механізм серіалізації для реалізації збереження даних у двійковому форматі та форматі XML. Навчитись створювати програмний код для перевірки правильності функціонування засобів файлового введення-виведення.

Теоретичні відомості

 

Операції з файлами та каталогами

 

Класи Directory і DirectoryInfo призначені для роботи з папками, а класи File і FileInfo - для роботи з файлами. Відмінність цих класів у тому, що класи Directory і File – статичні, а DirectoryInfo і FileInfo дозволяють створювати об'єкти. Призначення ж і тих і інших однакове.

 

Операції введення-виведення

 

Практично будь-які операції, пов'язані з введенням / виведенням будь-якій послідовності байт (файл, пристрій введення-виведення, канал взаємодії процесів, потік шифрування та ін) в.NET здійснюються за допомогою потоків. Базовий клас для всіх потоків System.IO.Stream. Клас Stream і його похідні класи надають універсальне представлення різних типів введення і виведення, ізолюючи програміста від окремих відомостей операційної системи і базових пристроїв.

Залежно від базового джерела або сховища даних потоки можуть підтримувати тільки деякі з цих можливостей. Додаток може запитувати можливості потоку за допомогою властивостей CanRead, CanWrite і CanSeek.

Методи Read і Write дозволяють виконувати читання і запис даних у різних форматах. Якщо потік підтримує пошук, для відправки запитів і зміни поточного стану та довжини потоку рекомендується використовувати методи Seek, SetLength, а також властивості Position, Length.

Деякі реалізації потоків виконують локальну буферизацію основних даних для поліпшення продуктивності. У таких потоках для видалення внутрішніх буферів і забезпечення запису всіх даних на основне джерело даних або сховище об'єктів можна використовувати метод Flush.

При виклику методу Close для класу Stream всі дані буфера будуть очищені, по суті виконується виклик методу Flush. Метод Close також звільняє такі ресурси операційної системи, як дескриптори файлів, мережеві підключення або пам'ять, використовувану для внутрішньої буферизації.

Багато потоків, які працюють безпосередньо з пристроями введення / виведення, вміють писати / читати тільки послідовності байт. Природно, що це не зовсім зручно. Тому в. Net існують класи-спадкоємці Stream, які приймають у свій конструктор базовий потік і вміють працювати з більш складними типами даних. Іншими словами, ці класи здатні виступати у вигляді якоїсь обгортки над байтовим потоком, здатної перетворювати записувані або читають дані в масив байт і, навпаки. Такими класами-обгортками, наприклад, є класи StreamReader, StreamWriter, BinaryReader, BinaryWriter та ін.

 

Серіалізація

 

Серіалізація це збереження стану об'єкта в байтовий потік, з метою його (об'єкта) подальшого відновлення. Збережена послідовність байт містить всю необхідну інформацію для відновлення об'єкта.

За допомогою сериализации дуже просто зберігати величезні обсяги даних (в самих різних форматах). У багатьох випадках збереження даних програми за допомогою сервісу серіалізациі виявляється набагато зручнішим, ніж пряме використання коштів читання / запису, пропонованих в рамках простору імен System.IO.

 

Date: 2015-09-02; view: 327; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию