🗊Презентация Ввод-вывод. Сериализация объектов

Нажмите для полного просмотра!
Ввод-вывод. Сериализация объектов, слайд №1Ввод-вывод. Сериализация объектов, слайд №2Ввод-вывод. Сериализация объектов, слайд №3Ввод-вывод. Сериализация объектов, слайд №4Ввод-вывод. Сериализация объектов, слайд №5Ввод-вывод. Сериализация объектов, слайд №6Ввод-вывод. Сериализация объектов, слайд №7Ввод-вывод. Сериализация объектов, слайд №8Ввод-вывод. Сериализация объектов, слайд №9Ввод-вывод. Сериализация объектов, слайд №10Ввод-вывод. Сериализация объектов, слайд №11Ввод-вывод. Сериализация объектов, слайд №12Ввод-вывод. Сериализация объектов, слайд №13Ввод-вывод. Сериализация объектов, слайд №14Ввод-вывод. Сериализация объектов, слайд №15Ввод-вывод. Сериализация объектов, слайд №16Ввод-вывод. Сериализация объектов, слайд №17Ввод-вывод. Сериализация объектов, слайд №18Ввод-вывод. Сериализация объектов, слайд №19Ввод-вывод. Сериализация объектов, слайд №20Ввод-вывод. Сериализация объектов, слайд №21Ввод-вывод. Сериализация объектов, слайд №22Ввод-вывод. Сериализация объектов, слайд №23Ввод-вывод. Сериализация объектов, слайд №24Ввод-вывод. Сериализация объектов, слайд №25Ввод-вывод. Сериализация объектов, слайд №26Ввод-вывод. Сериализация объектов, слайд №27Ввод-вывод. Сериализация объектов, слайд №28Ввод-вывод. Сериализация объектов, слайд №29Ввод-вывод. Сериализация объектов, слайд №30Ввод-вывод. Сериализация объектов, слайд №31Ввод-вывод. Сериализация объектов, слайд №32Ввод-вывод. Сериализация объектов, слайд №33Ввод-вывод. Сериализация объектов, слайд №34Ввод-вывод. Сериализация объектов, слайд №35Ввод-вывод. Сериализация объектов, слайд №36Ввод-вывод. Сериализация объектов, слайд №37Ввод-вывод. Сериализация объектов, слайд №38Ввод-вывод. Сериализация объектов, слайд №39Ввод-вывод. Сериализация объектов, слайд №40Ввод-вывод. Сериализация объектов, слайд №41Ввод-вывод. Сериализация объектов, слайд №42Ввод-вывод. Сериализация объектов, слайд №43Ввод-вывод. Сериализация объектов, слайд №44Ввод-вывод. Сериализация объектов, слайд №45Ввод-вывод. Сериализация объектов, слайд №46Ввод-вывод. Сериализация объектов, слайд №47Ввод-вывод. Сериализация объектов, слайд №48Ввод-вывод. Сериализация объектов, слайд №49Ввод-вывод. Сериализация объектов, слайд №50

Содержание

Вы можете ознакомиться и скачать презентацию на тему Ввод-вывод. Сериализация объектов. Доклад-сообщение содержит 50 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Ввод-вывод
Сериализация объектов
Описание слайда:
Ввод-вывод Сериализация объектов

Слайд 2





Наиболее важные классы пространства имен System.IO
Описание слайда:
Наиболее важные классы пространства имен System.IO

Слайд 3





Иерархия типов
Описание слайда:
Иерархия типов

Слайд 4





Свойства и методы класса FileSystemInfo
Описание слайда:
Свойства и методы класса FileSystemInfo

Слайд 5





Тип DirectoryInfo
Описание слайда:
Тип DirectoryInfo

Слайд 6





Работа с DirectoryInfo
class MyDirectory
{
		public static void Main(String[] args)
		{
			// Создаем объект DirectoryInfo, соответствующий D:\TEMP
			DirectoryInfo dir = new DirectoryInfo(@“C:\TEMP");
			
			// Выводим информацию о каталоге
			Console.WriteLine("***** Directory Info *****");
			Console.WriteLine("FullName: {0}", dir.FullName);
			Console.WriteLine("Name: {0}", dir.Name);
			Console.WriteLine("Parent: {0}", dir.Parent);
			Console.WriteLine("Creation: {0}", dir.CreationTime);
			Console.WriteLine("Attributes: {0}", dir.Attributes.ToString());
			Console.WriteLine("Root: {0}", dir.Root);
			Console.WriteLine("***********************\n");
		}
}
Описание слайда:
Работа с DirectoryInfo class MyDirectory { public static void Main(String[] args) { // Создаем объект DirectoryInfo, соответствующий D:\TEMP DirectoryInfo dir = new DirectoryInfo(@“C:\TEMP"); // Выводим информацию о каталоге Console.WriteLine("***** Directory Info *****"); Console.WriteLine("FullName: {0}", dir.FullName); Console.WriteLine("Name: {0}", dir.Name); Console.WriteLine("Parent: {0}", dir.Parent); Console.WriteLine("Creation: {0}", dir.CreationTime); Console.WriteLine("Attributes: {0}", dir.Attributes.ToString()); Console.WriteLine("Root: {0}", dir.Root); Console.WriteLine("***********************\n"); } }

Слайд 7





Перечисление FileAttributes
Описание слайда:
Перечисление FileAttributes

Слайд 8





Доступ к файлам через Directory и FileInfo
class MyDirectory
{
		public static void Main(String[] args)
		{
			// Создаем объект DirectoryInfo, соответствующий C:\TEMP
			DirectoryInfo dir = new DirectoryInfo(@“C:\TEMP");
						
			// Получаем все файлы с расширением MP3
			FileInfo[ ] bitmapFiles = dir.GetFiles("*.mp3");
			// А сколько их у нас?
			Console.WriteLine("Found {0} *.bmp files\n", bitmapFiles.Length);
			// Теперь выводим информацию о каждом файле
			foreach (FileInfo f in bitmapFiles)
			{
				Console.WriteLine("*******************\n");
				Console.WriteLine("File name: {0}", f.Name);
				Console.WriteLine("File size: {0}", f.Length);
				Console.WriteLine("Creation: {0}", f.CreationTime);
				Console.WriteLine("Attributes: {0}", f.Attributes.ToString());
				Console.WriteLine("*******************\n");
			}
		}
}
Описание слайда:
Доступ к файлам через Directory и FileInfo class MyDirectory { public static void Main(String[] args) { // Создаем объект DirectoryInfo, соответствующий C:\TEMP DirectoryInfo dir = new DirectoryInfo(@“C:\TEMP"); // Получаем все файлы с расширением MP3 FileInfo[ ] bitmapFiles = dir.GetFiles("*.mp3"); // А сколько их у нас? Console.WriteLine("Found {0} *.bmp files\n", bitmapFiles.Length); // Теперь выводим информацию о каждом файле foreach (FileInfo f in bitmapFiles) { Console.WriteLine("*******************\n"); Console.WriteLine("File name: {0}", f.Name); Console.WriteLine("File size: {0}", f.Length); Console.WriteLine("Creation: {0}", f.CreationTime); Console.WriteLine("Attributes: {0}", f.Attributes.ToString()); Console.WriteLine("*******************\n"); } } }

Слайд 9





Создание подкаталогов при помощи класса DirectoryInfo
class MyDirectory
{
		public static void Main(String[] args)
		{
			DirectoryInfo dir = new DirectoryInfo(@"C:\TEMP");
			...
			
			// Создаем в C:\TEMP новые подкаталоги
			try
			{
				// Создаем C:\TEMP\MyFoo
				dir.CreateSubdirectory("MyFoo");
				Console.WriteLine("Created: {0}", d.FullName);
				// Создаем C:\TEMP\MyBar\MyQaaz
				dir.CreateSubdirectory(@"MyBar\MyQaaz"); 				Console.WriteLine("Created: {0}", d.FullName);
			}
			catch(IOException e) { Console.Write(e.Message);}
		}
}
Описание слайда:
Создание подкаталогов при помощи класса DirectoryInfo class MyDirectory { public static void Main(String[] args) { DirectoryInfo dir = new DirectoryInfo(@"C:\TEMP"); ... // Создаем в C:\TEMP новые подкаталоги try { // Создаем C:\TEMP\MyFoo dir.CreateSubdirectory("MyFoo"); Console.WriteLine("Created: {0}", d.FullName); // Создаем C:\TEMP\MyBar\MyQaaz dir.CreateSubdirectory(@"MyBar\MyQaaz"); Console.WriteLine("Created: {0}", d.FullName); } catch(IOException e) { Console.Write(e.Message);} } }

Слайд 10





Статические члены класса Directory
	public static void Main(String[] args)
	{
		// Создаем объект DirectoryInfo, соответствующий C:\TEMP 
		DirectoryInfo dir = new DirectoryInfo(@"C:\TEMP");
		// А теперь воспользуемся несколькими статическими методами класса  Directory 
		
		// Выводим информацию обо всех логических дисках
		string[ ] drives = Directory.GetLogicalDrives();
		Console.WriteLine("Here are your drives:");
		foreach(string s in drives)  { Console.WriteLine("->{0}", s);}
		// Удаляем только что созданные каталоги
		Console.Write(Going to delete\n->" + dir.FullName +"\\MyBar\MyQaaz.\nand\an->" +
 			 dir.FullName + “ \\MyFoo.\n" + "Press a key to continue!");
		Console.Read();
		try
		{
	  	     Directory.Delete(@"C:\TEMP\MyFoo");
      	     // Необязательный второй параметр определяет, будут ли удалены вложенные подкаталоги 
		     Directory.Delete(@"C:\TEMP\MyBar", true);
		}
		
		catch(IOException e) {	Console.WriteLine(e.Message); }
	}
Описание слайда:
Статические члены класса Directory public static void Main(String[] args) { // Создаем объект DirectoryInfo, соответствующий C:\TEMP DirectoryInfo dir = new DirectoryInfo(@"C:\TEMP"); // А теперь воспользуемся несколькими статическими методами класса Directory // Выводим информацию обо всех логических дисках string[ ] drives = Directory.GetLogicalDrives(); Console.WriteLine("Here are your drives:"); foreach(string s in drives) { Console.WriteLine("->{0}", s);} // Удаляем только что созданные каталоги Console.Write(Going to delete\n->" + dir.FullName +"\\MyBar\MyQaaz.\nand\an->" + dir.FullName + “ \\MyFoo.\n" + "Press a key to continue!"); Console.Read(); try { Directory.Delete(@"C:\TEMP\MyFoo"); // Необязательный второй параметр определяет, будут ли удалены вложенные подкаталоги Directory.Delete(@"C:\TEMP\MyBar", true); } catch(IOException e) { Console.WriteLine(e.Message); } }

Слайд 11





Класс FileInfo (1)
Описание слайда:
Класс FileInfo (1)

Слайд 12





Класс FileInfo (2)
Описание слайда:
Класс FileInfo (2)

Слайд 13





Манипуляция файлом
public class FileManipulator
{
		public static int Main(string[] args)
		{
			// Создаем новый файл в корневом каталоге диска C:
			FileInfo f = new FileInfo(@"C:\Test.txt");
			FileStream fs = f.Create();
			// Выводим основную информацию о созданном нами файле
			Console.WriteLine("Creation: {0}", f.CreationTime);
			Console.WriteLine("Full Name: {0}", f.FullName);
			Console.WriteLine("Full atts: {0}", f.Attributes.ToString());
			Console.Write("Press a key to delete file");
			Console.Read();
			// Закрываем FileStream и удаляем файл
			fs.Close();
			f.Delete();
			return 0;
		}
}
Описание слайда:
Манипуляция файлом public class FileManipulator { public static int Main(string[] args) { // Создаем новый файл в корневом каталоге диска C: FileInfo f = new FileInfo(@"C:\Test.txt"); FileStream fs = f.Create(); // Выводим основную информацию о созданном нами файле Console.WriteLine("Creation: {0}", f.CreationTime); Console.WriteLine("Full Name: {0}", f.FullName); Console.WriteLine("Full atts: {0}", f.Attributes.ToString()); Console.Write("Press a key to delete file"); Console.Read(); // Закрываем FileStream и удаляем файл fs.Close(); f.Delete(); return 0; } }

Слайд 14





Использование метода FileInfo.Open()
     // Get a new FileStream object.
	FileInfo f2 = new FileInfo(@"C:\HelloThere.ini");
	FileStream  s = f2.Open (FileMode.OpenOrCreate, 
 				  FileAccess.ReadWrite, 	
 				  FileShare.None);		
			// Write 20 bytes to the dat file...
			for(int i = 0; i < 256; i++)
			{
				s.WriteByte((byte)i);
			}
Описание слайда:
Использование метода FileInfo.Open() // Get a new FileStream object. FileInfo f2 = new FileInfo(@"C:\HelloThere.ini"); FileStream s = f2.Open (FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); // Write 20 bytes to the dat file... for(int i = 0; i < 256; i++) { s.WriteByte((byte)i); }

Слайд 15





Значение перечисления FileMode
Описание слайда:
Значение перечисления FileMode

Слайд 16





Значение перечисления FileAccess
Описание слайда:
Значение перечисления FileAccess

Слайд 17





Методы FileInfo.OpenRead и FileInfo.OpenWritle
FileInfo fr = new FileInfo(@"C:\boot.ini");
FileStream readOnlyStream = fr.OpenRead();
readOnlyStream.Close();
FileInfo fw = new FileInfo(@"C:\boot.ini");
FileStream writeOnlyStream = fw.OpenWrite();
writeOnlyStream.Close();
Описание слайда:
Методы FileInfo.OpenRead и FileInfo.OpenWritle FileInfo fr = new FileInfo(@"C:\boot.ini"); FileStream readOnlyStream = fr.OpenRead(); readOnlyStream.Close(); FileInfo fw = new FileInfo(@"C:\boot.ini"); FileStream writeOnlyStream = fw.OpenWrite(); writeOnlyStream.Close();

Слайд 18





Методы FileInfo.OpenText, FileInfo.CreateText, FileInfo.AppendText
FileInfo fs = new FileInfo(@"C:\boot.ini");
StreamReader sReader = fs.OpenText();
sReader.Close();
FileInfo fs = new FileInfo(@"C:\test.txt");
fs.Open(FileMode.Create,FileAccess.ReadWrite)
StreamWriter sWriter = fs.CreateText();
sWriter.Close();
Описание слайда:
Методы FileInfo.OpenText, FileInfo.CreateText, FileInfo.AppendText FileInfo fs = new FileInfo(@"C:\boot.ini"); StreamReader sReader = fs.OpenText(); sReader.Close(); FileInfo fs = new FileInfo(@"C:\test.txt"); fs.Open(FileMode.Create,FileAccess.ReadWrite) StreamWriter sWriter = fs.CreateText(); sWriter.Close();

Слайд 19





Абстрактный класс Stream
Описание слайда:
Абстрактный класс Stream

Слайд 20





Члены класса Stream
Описание слайда:
Члены класса Stream

Слайд 21





Работа с объектом FileStream
	FileStream  s = f2.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite,
				 			FileShare.None);
	
	// Write 20 bytes to the dat file...
	for(int i = 0; i < 256; i++)
	{
		s.WriteByte((byte)i);
	}
	// Reset internal position.
	s.Position = 0;
	// Read 20 bytes from the dat file...
	for(int i = 0; i < 256; i++)
	{
		Console.Write(s.ReadByte());	
	}
	s.Close();
Описание слайда:
Работа с объектом FileStream FileStream s = f2.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); // Write 20 bytes to the dat file... for(int i = 0; i < 256; i++) { s.WriteByte((byte)i); } // Reset internal position. s.Position = 0; // Read 20 bytes from the dat file... for(int i = 0; i < 256; i++) { Console.Write(s.ReadByte()); } s.Close();

Слайд 22





Работа с объектом MemoryStream
// Создаем объект MemoryStream точно определенного объема
MemoryStream myMemStream = new MemoryStream();
myMemStream.Capacity = 256;
// Записываем байты в myMemStream
for(int i = 0; i < 256; i++)
{
		myMemStream.WriteByte((byte)i);
}
// Переставляем внутренний указатель на начало
myMemStream.Position = 0;
// Считываем байты из потока
for(int i = 0; i < 256; i++)
{
		Console.Write(myMemStream.ReadByte());
}
myMemStream.Close();
Описание слайда:
Работа с объектом MemoryStream // Создаем объект MemoryStream точно определенного объема MemoryStream myMemStream = new MemoryStream(); myMemStream.Capacity = 256; // Записываем байты в myMemStream for(int i = 0; i < 256; i++) { myMemStream.WriteByte((byte)i); } // Переставляем внутренний указатель на начало myMemStream.Position = 0; // Считываем байты из потока for(int i = 0; i < 256; i++) { Console.Write(myMemStream.ReadByte()); } myMemStream.Close();

Слайд 23





Наиболее важные члены MemoryStream
Описание слайда:
Наиболее важные члены MemoryStream

Слайд 24





Класс BufferedStream
     		// Создаем объект BufferedStream
	 		BufferedStream myFileBuffer = new BufferedStream(dumpFile);
			
			// Добавляем несколько байт
			byte [ ] str = {127, 0x77, 0x4, 0x0, 0x0, 0x16};
			myFileBuffer.Write(str, 0, str.Length);
			myFileBuffer.Close();	// Сброс на диск только сейчас
Описание слайда:
Класс BufferedStream // Создаем объект BufferedStream BufferedStream myFileBuffer = new BufferedStream(dumpFile); // Добавляем несколько байт byte [ ] str = {127, 0x77, 0x4, 0x0, 0x0, 0x16}; myFileBuffer.Write(str, 0, str.Length); myFileBuffer.Close(); // Сброс на диск только сейчас

Слайд 25





Классы StreamReader и StreamWriter
Описание слайда:
Классы StreamReader и StreamWriter

Слайд 26





Наиболее важные члены TextWriter
Описание слайда:
Наиболее важные члены TextWriter

Слайд 27





Запись в текстовый файл
	// Создаем файл
	FileInfo f = new FileInfo("Thoughts.txt");
	// Получаем объект StreamWriter и с его помощью записываем в файл 
	// несколько строк текста 
	StreamWriter writer = f.CreateText();
	writer.WriteLine("Don't forget Mother's Day this year...");
	writer.WriteLine("Don't forget Father's Day this year...");
	writer.WriteLine("Don't forget these numbers:");
	for(int i = 0; i < 10; i++);
	{
		writer.Write(i + " ");
	}
	// Вставляем символ начала новой строки
	writer.Write(writer.NewLine);
	// Метод Close() автоматически очищает все буферы!
	writer.Close();
	Console.WriteLine("Created file and wrote some thoughts...");
Описание слайда:
Запись в текстовый файл // Создаем файл FileInfo f = new FileInfo("Thoughts.txt"); // Получаем объект StreamWriter и с его помощью записываем в файл // несколько строк текста StreamWriter writer = f.CreateText(); writer.WriteLine("Don't forget Mother's Day this year..."); writer.WriteLine("Don't forget Father's Day this year..."); writer.WriteLine("Don't forget these numbers:"); for(int i = 0; i < 10; i++); { writer.Write(i + " "); } // Вставляем символ начала новой строки writer.Write(writer.NewLine); // Метод Close() автоматически очищает все буферы! writer.Close(); Console.WriteLine("Created file and wrote some thoughts...");

Слайд 28





Наиболее важные члены TextReader
Описание слайда:
Наиболее важные члены TextReader

Слайд 29





Чтение текстового файла
// А теперь выводим информацию из файла на консоль при помощи 
// StreamReader 
Console.WriteLine("Here are your thoughts:\n");
StreamReader sr = File.OpenText("Thoughts.txt");
string input = null;
while ((input = sr.ReadLine()) !=null)
	{
		Console.WriteLine(input);
	}
sr.Close();
Описание слайда:
Чтение текстового файла // А теперь выводим информацию из файла на консоль при помощи // StreamReader Console.WriteLine("Here are your thoughts:\n"); StreamReader sr = File.OpenText("Thoughts.txt"); string input = null; while ((input = sr.ReadLine()) !=null) { Console.WriteLine(input); } sr.Close();

Слайд 30





Класс StringWriter
// Получаем объект StringWriter и с его помощью записываем  
// в файл несколько строк текста 
StringWriter writer = new StringWriter();
writer.WriteLine("Don't forget Mother's Day this year...");
writer.WriteLine("Don't forget Father's Day this year...");
writer.WriteLine("Don't forget these numbers:");
for(int i = 0; i < 10; i++);
{
	writer.Write(i + " ");
}
// Вставляем символ начала новой строки
writer.Write(writer.NewLine);
// Метод Close() автоматически очищает все буферы!
writer.Close();
Console.WriteLine("Stored thoughts in a StringWriter...");
// Получаем копию содержимого StringBuffer (в виде значения типа string) 
// и выводим ее на консоль 
Console.WriteLine("Contents: {0}", writer.ToString());
Описание слайда:
Класс StringWriter // Получаем объект StringWriter и с его помощью записываем // в файл несколько строк текста StringWriter writer = new StringWriter(); writer.WriteLine("Don't forget Mother's Day this year..."); writer.WriteLine("Don't forget Father's Day this year..."); writer.WriteLine("Don't forget these numbers:"); for(int i = 0; i < 10; i++); { writer.Write(i + " "); } // Вставляем символ начала новой строки writer.Write(writer.NewLine); // Метод Close() автоматически очищает все буферы! writer.Close(); Console.WriteLine("Stored thoughts in a StringWriter..."); // Получаем копию содержимого StringBuffer (в виде значения типа string) // и выводим ее на консоль Console.WriteLine("Contents: {0}", writer.ToString());

Слайд 31





Доступ через StringWriter.GetStringBuilder()
// Получаем объект StringBuilder и выводим его содержимое 
StringBuilder str = writer.GetStringBuilder();
string allOfTheData = str.ToString();
Console.WriteLine("StringBuilder says:\n{0} ", allOfTheData);
// Вставляем в буфер новый элемент, позиция вставки 20 
str.Insert(20, "INSERTED STUFF");
allOfTheData = str.ToString();
Console.WriteLine("New StringBuilder says:\n{0}", allOfTheData);
// Удаляем вставленный элемент
str.Remove(20, "INSERTED STUFF".Length);
allOfTheData = str.ToString();			
Console.WriteLine("Original says:\n{0}", allOfTheData);
Описание слайда:
Доступ через StringWriter.GetStringBuilder() // Получаем объект StringBuilder и выводим его содержимое StringBuilder str = writer.GetStringBuilder(); string allOfTheData = str.ToString(); Console.WriteLine("StringBuilder says:\n{0} ", allOfTheData); // Вставляем в буфер новый элемент, позиция вставки 20 str.Insert(20, "INSERTED STUFF"); allOfTheData = str.ToString(); Console.WriteLine("New StringBuilder says:\n{0}", allOfTheData); // Удаляем вставленный элемент str.Remove(20, "INSERTED STUFF".Length); allOfTheData = str.ToString(); Console.WriteLine("Original says:\n{0}", allOfTheData);

Слайд 32





Доступ через StringWriter.GetStringBuilder()
// Получаем объект StringBuilder и выводим его содержимое 
StringBuilder str = writer.GetStringBuilder();
string allOfTheData = str.ToString();
Console.WriteLine("StringBuilder says:\n{0} ", allOfTheData);
// Вставляем в буфер новый элемент, позиция вставки 20 
str.Insert(20, "INSERTED STUFF");
allOfTheData = str.ToString();
Console.WriteLine("New StringBuilder says:\n{0}", allOfTheData);
// Удаляем вставленный элемент
str.Remove(20, "INSERTED STUFF".Length);
allOfTheData = str.ToString();			
Console.WriteLine("Original says:\n{0}", allOfTheData);
Описание слайда:
Доступ через StringWriter.GetStringBuilder() // Получаем объект StringBuilder и выводим его содержимое StringBuilder str = writer.GetStringBuilder(); string allOfTheData = str.ToString(); Console.WriteLine("StringBuilder says:\n{0} ", allOfTheData); // Вставляем в буфер новый элемент, позиция вставки 20 str.Insert(20, "INSERTED STUFF"); allOfTheData = str.ToString(); Console.WriteLine("New StringBuilder says:\n{0}", allOfTheData); // Удаляем вставленный элемент str.Remove(20, "INSERTED STUFF".Length); allOfTheData = str.ToString(); Console.WriteLine("Original says:\n{0}", allOfTheData);

Слайд 33





Доступ через StringWriter.GetStringBuilder()
	StringReader sr = new StringReader(writer.ToString());
			
	string input = null;
	while ((input = sr.ReadLine()) != null)
	{
		Console.WriteLine (input);
	}
	sr.Close();
Описание слайда:
Доступ через StringWriter.GetStringBuilder() StringReader sr = new StringReader(writer.ToString()); string input = null; while ((input = sr.ReadLine()) != null) { Console.WriteLine (input); } sr.Close();

Слайд 34





Наиболее важные члены BinaryWriter
Описание слайда:
Наиболее важные члены BinaryWriter

Слайд 35





Запись двоичных файлов
FileStream myFStream = new FileStream("temp.dat",
                             FileMode.OpenOrCreate, FileAccess.ReadWrite);
// Записываем двоичные данные
BinaryWriter binWrit  = new BinaryWriter(myFStream);
binWrit.WriteString("Hello as binary info...");
int myInt = 99;
float myFloat = 9984.82343F;
bool myBool = false;
char[] myCharArray = {'H', 'e', 'l', 'l', 'o'};
binWrit.Write(myInt);
binWrit.Write(myFloat);
binWrit.Write(myBool);
binWrit.Write(myCharArray);
Описание слайда:
Запись двоичных файлов FileStream myFStream = new FileStream("temp.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); // Записываем двоичные данные BinaryWriter binWrit = new BinaryWriter(myFStream); binWrit.WriteString("Hello as binary info..."); int myInt = 99; float myFloat = 9984.82343F; bool myBool = false; char[] myCharArray = {'H', 'e', 'l', 'l', 'o'}; binWrit.Write(myInt); binWrit.Write(myFloat); binWrit.Write(myBool); binWrit.Write(myCharArray);

Слайд 36





Чтение двоичных файлов
// Устанавливаем внутренний указатель на начало
binWrit.BaseStream.Position = 0;
// Считываем двоичную информацию как поток байтов
Console.WriteLine("Reading binary data...");
BinaryReader binRead = new BinaryReader(myFStream);
int temp = 0;
while(binRead.PeekChar() != -1)
{	Console.Write(binRead.ReadByte());
	temp = temp + 1;
	if(temp = = 5)
	{	// Добавляем пустую строку через каждые 5 байтов 
		temp = 0;
		Console.WriteLine();
	}
}
// Все закрываем
binWrit.Close();	binRead.Close();	myFStream.Close();
Описание слайда:
Чтение двоичных файлов // Устанавливаем внутренний указатель на начало binWrit.BaseStream.Position = 0; // Считываем двоичную информацию как поток байтов Console.WriteLine("Reading binary data..."); BinaryReader binRead = new BinaryReader(myFStream); int temp = 0; while(binRead.PeekChar() != -1) { Console.Write(binRead.ReadByte()); temp = temp + 1; if(temp = = 5) { // Добавляем пустую строку через каждые 5 байтов temp = 0; Console.WriteLine(); } } // Все закрываем binWrit.Close(); binRead.Close(); myFStream.Close();

Слайд 37





Вывод стандартных объектов
// Открываем файл изображения в каталоге приложения
Console.WriteLine("Modifying a bitmap in memory");
myFStream = new FileStream("Paint Splatter.bmp", FileMode.Open, FileAccess.ReadWrite);
// Создаем объект Bitmap на основе открытого потока
Bitmap rawBitmap = new Bitmap(myFStream);
// Рисуем белый крест поперек изображения (наш код применим лишь в том
// случае,  если высота и ширина изображения одинаковы) 
for(int i = 0; i < rawBitmap.Width; i++)
{
		rawBitmap.SetPixel(i, i, Color.White);
		rawBitmap.SetPixel(rawBitmap.Width - i) - 1, i - 1, Color.White);
}
// А теперь сохраняем измененное изображение в файл
rawBitmap.Save("newImage.bmp");
myFStream.Close();
Описание слайда:
Вывод стандартных объектов // Открываем файл изображения в каталоге приложения Console.WriteLine("Modifying a bitmap in memory"); myFStream = new FileStream("Paint Splatter.bmp", FileMode.Open, FileAccess.ReadWrite); // Создаем объект Bitmap на основе открытого потока Bitmap rawBitmap = new Bitmap(myFStream); // Рисуем белый крест поперек изображения (наш код применим лишь в том // случае, если высота и ширина изображения одинаковы) for(int i = 0; i < rawBitmap.Width; i++) { rawBitmap.SetPixel(i, i, Color.White); rawBitmap.SetPixel(rawBitmap.Width - i) - 1, i - 1, Color.White); } // А теперь сохраняем измененное изображение в файл rawBitmap.Save("newImage.bmp"); myFStream.Close();

Слайд 38





Сохранение объектов .NET
Сериализация – процесс преобразования объекта в линеную последовательность байт
Сериализация подразумевает сохранение информации и родительских объектах
Описание слайда:
Сохранение объектов .NET Сериализация – процесс преобразования объекта в линеную последовательность байт Сериализация подразумевает сохранение информации и родительских объектах

Слайд 39





Настройка объектов для сериализации
// Класс Radio может быть сериализован
[Serializable]
public class Radio
{
		// Однако нам нет необходимости сохранять это число
		[NonSerialized]
		private int objectIDNumber = 9;
		public Radio(){}
		public void On(bool state)
		{
			if(state = = true)
				MessageBox.Show("Music is on...");
			else
				MessageBox.Show("No tunes...");
		}
}
Описание слайда:
Настройка объектов для сериализации // Класс Radio может быть сериализован [Serializable] public class Radio { // Однако нам нет необходимости сохранять это число [NonSerialized] private int objectIDNumber = 9; public Radio(){} public void On(bool state) { if(state = = true) MessageBox.Show("Music is on..."); else MessageBox.Show("No tunes..."); } }

Слайд 40





Сериализация в двоичном формате
using System.Runtime.Serialization.Formatters.Binary;
public static void Main()
{
		// Создаем объект JamesBondCar и выполняем с ним всякие действия 
		JamesBondCar myAuto = new JamesBondCar("Fred", 50, false, true);
		myAuto.TurnOnRadio(true);
		myAuto.GoUnderWater();
		// Создаем поток для записи в файл
		FileStream myStream = File.Create("CarData.dat");
		// Помещаем объектный граф в поток в двоичном формате
		BinaryFormatter myBinaryFormat = new BinaryFormatter();
		myBinaryFormat.Serialize(myStream, myAuto);
		myStream.Close();
		...
}
Описание слайда:
Сериализация в двоичном формате using System.Runtime.Serialization.Formatters.Binary; public static void Main() { // Создаем объект JamesBondCar и выполняем с ним всякие действия JamesBondCar myAuto = new JamesBondCar("Fred", 50, false, true); myAuto.TurnOnRadio(true); myAuto.GoUnderWater(); // Создаем поток для записи в файл FileStream myStream = File.Create("CarData.dat"); // Помещаем объектный граф в поток в двоичном формате BinaryFormatter myBinaryFormat = new BinaryFormatter(); myBinaryFormat.Serialize(myStream, myAuto); myStream.Close(); ... }

Слайд 41





Полученный двоичный файл
Описание слайда:
Полученный двоичный файл

Слайд 42





Десериализация в двоичном формате
using System.Runtime.Serialization.Formatters.Binary;
public static void Main()
{
myStream = FileOpenRead("CarData.dat");
JamesBondCar carFromDisk = 
(JamesBondCar) myBinaryFormat.Deserialize(myStream);
Console.WriteLine(CarFromDisk.PetName);
CarFromDisk.TurnOnRadio(true);
myStream.Close();
}
Описание слайда:
Десериализация в двоичном формате using System.Runtime.Serialization.Formatters.Binary; public static void Main() { myStream = FileOpenRead("CarData.dat"); JamesBondCar carFromDisk = (JamesBondCar) myBinaryFormat.Deserialize(myStream); Console.WriteLine(CarFromDisk.PetName); CarFromDisk.TurnOnRadio(true); myStream.Close(); }

Слайд 43





Сериализация в формате SOAP
using System.Runtime.Serialization.Formatters.Soap;
// Сохраняем тот же самый объект в формате SOAP
FileStream myStream = File.Create("CarData.xml");
SoapFormatter myXMLFormat = new SoapFormatter();
myXMLFormat.Serialize(myStream, myAuto);
myStream.Close();
// Восстанавливаем объект из файла SOAP
myStream = File.OpenRead("CarData.xml");
JamesBondCar carFromXML = (JamesBondCar)myXMLFormat.Deserialize(myStream);
Console.WriteLine(carFromXML.PetName + " is alive!");
myStream.Close();
Описание слайда:
Сериализация в формате SOAP using System.Runtime.Serialization.Formatters.Soap; // Сохраняем тот же самый объект в формате SOAP FileStream myStream = File.Create("CarData.xml"); SoapFormatter myXMLFormat = new SoapFormatter(); myXMLFormat.Serialize(myStream, myAuto); myStream.Close(); // Восстанавливаем объект из файла SOAP myStream = File.OpenRead("CarData.xml"); JamesBondCar carFromXML = (JamesBondCar)myXMLFormat.Deserialize(myStream); Console.WriteLine(carFromXML.PetName + " is alive!"); myStream.Close();

Слайд 44





Результирующий XML-файл
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<a1:JamesBondCar id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/CarToFileApp/CarToFileApp%2C%20Version%3D1.0.3700.24437%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<isFlightWorthy>false</isFlightWorthy>
<isSeaWorthy>true</isSeaWorthy>
<petName id="ref-3">Fred</petName>
<maxSpeed>50</maxSpeed>
<theRadio href="#ref-4"/>
<Car_x002B_petName href="#ref-3"/>
<Car_x002B_maxSpeed>50</Car_x002B_maxSpeed>
<Car_x002B_theRadio href="#ref-4"/>
</a1:JamesBondCar>
<a1:Radio id="ref-4" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/CarToFileApp/CarToFileApp%2C%20Version%3D1.0.3700.24437%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
</a1:Radio>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Описание слайда:
Результирующий XML-файл <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <a1:JamesBondCar id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/CarToFileApp/CarToFileApp%2C%20Version%3D1.0.3700.24437%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"> <isFlightWorthy>false</isFlightWorthy> <isSeaWorthy>true</isSeaWorthy> <petName id="ref-3">Fred</petName> <maxSpeed>50</maxSpeed> <theRadio href="#ref-4"/> <Car_x002B_petName href="#ref-3"/> <Car_x002B_maxSpeed>50</Car_x002B_maxSpeed> <Car_x002B_theRadio href="#ref-4"/> </a1:JamesBondCar> <a1:Radio id="ref-4" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/CarToFileApp/CarToFileApp%2C%20Version%3D1.0.3700.24437%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"> </a1:Radio> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Слайд 45





Пользовательская сериализация
// Интерфейс ISerializable
public interface ISerializable
{
 public virtual void GetObjectData
(Serialization info, SreamingContext context);
}
// Специальный конструктор для десериализации
Class SoeClass
{
 private SomeClass (Serialization si, SreamingContext ctx) { … }
}
Описание слайда:
Пользовательская сериализация // Интерфейс ISerializable public interface ISerializable { public virtual void GetObjectData (Serialization info, SreamingContext context); } // Специальный конструктор для десериализации Class SoeClass { private SomeClass (Serialization si, SreamingContext ctx) { … } }

Слайд 46





Класс SerializationInfo
AddValue() – многократно перегружен
GetXXXX() – GetString, GetInt32 …
Описание слайда:
Класс SerializationInfo AddValue() – многократно перегружен GetXXXX() – GetString, GetInt32 …

Слайд 47





Простой пример пользовательской сериализации
public class CustomCarType : ISerializable
{		public string petName;
		public int maxSpeed;
		public CustomCarType(string s, int i) { petName = s; maxSpeed = i; }
		// Передаем информацию о состоянии объекта объекту Formatter 
		public void GetObjectData(SerializationInfo si, StreamingContext ctx)
		{
		// Каков тип нашего потока?
		Console.WriteLine("[GetObjectData] Context State: {0}", ctx.State.Format());
			si.AddValue("CapPetName", petName);
			si.AddValue("MaxSpeed", maxSpeed);
		}
		// А теперь позаботимся о специальном варианте конструктора 
		private CustomCarType(SerializationInfo si, StreamingContext ctx)
		{
			// Каков тип нашего потока?
			Console.WriteLine("[ctor] Context State: {0}", ctx.State.Format());
			
			petName = si.GetString("CapPetName");
			maxSpeed = si.GetInt32("maxSpeed");
		}
}
Описание слайда:
Простой пример пользовательской сериализации public class CustomCarType : ISerializable { public string petName; public int maxSpeed; public CustomCarType(string s, int i) { petName = s; maxSpeed = i; } // Передаем информацию о состоянии объекта объекту Formatter public void GetObjectData(SerializationInfo si, StreamingContext ctx) { // Каков тип нашего потока? Console.WriteLine("[GetObjectData] Context State: {0}", ctx.State.Format()); si.AddValue("CapPetName", petName); si.AddValue("MaxSpeed", maxSpeed); } // А теперь позаботимся о специальном варианте конструктора private CustomCarType(SerializationInfo si, StreamingContext ctx) { // Каков тип нашего потока? Console.WriteLine("[ctor] Context State: {0}", ctx.State.Format()); petName = si.GetString("CapPetName"); maxSpeed = si.GetInt32("maxSpeed"); } }

Слайд 48





Простой пример пользовательской сериализации
public static int Main(string[] args)
{
		CustomCarType myAuto = new CustomCarType("Siddhartha", 50);
		Stream myStream = File.Create("CarData.dat");
		// Задействуем интерфейс ISerializable
		BinaryFormatter myBinaryFormat = new BinaryFormatter();
		myBinaryFormat.Serialize(myStream, myAuto);
		myStream.Close();
		myStream = File.OpenRead("CarData.dat");
		// Вызываем спецконструктор
		CustomCarType carFromDisk = 
                  (CustomCarType)myBinaryFormat.Deserialize(myStream);
		Console.WriteLine(carFromDisk.petName + " is alive!");
		return 0;
}
Описание слайда:
Простой пример пользовательской сериализации public static int Main(string[] args) { CustomCarType myAuto = new CustomCarType("Siddhartha", 50); Stream myStream = File.Create("CarData.dat"); // Задействуем интерфейс ISerializable BinaryFormatter myBinaryFormat = new BinaryFormatter(); myBinaryFormat.Serialize(myStream, myAuto); myStream.Close(); myStream = File.OpenRead("CarData.dat"); // Вызываем спецконструктор CustomCarType carFromDisk = (CustomCarType)myBinaryFormat.Deserialize(myStream); Console.WriteLine(carFromDisk.petName + " is alive!"); return 0; }

Слайд 49





Использование диалога Open
protected void menuItemOpen_Click (object sender, System.EventArgs e)
{
	// Настраиваем свойства диалогового окна для открытия файлов 
	OpenFileDialog myOpenFileDialog = new OpenFileDialog();
	myOpenFileDialog.InitialDirectory = ".";
	myOpenFileDialog.Filter = "car files (*.car)|*.car|All files(*.*)|*.*";
	myOpenFileDialog.FilterIndex = 1;
	myOpenFileDialog.RestoreDirectory = true;
	// Восстанавливаем объекты автомобилей
	if(myOpenFileDialog.ShowDialog() = = DialogResult.OK)
	{	// Очищаем текущий массив
		arTheCars.Clear();
		Stream myStram = null;
		if((myStream = myOpenFileDiaog.OpenFile()) != null)
		{
			BinaryFormatter myBinaryFormat = new BinaryFormatter();
			arTheCars = (ArrayList)myBinaryFormat.Deserilize(myStream);
			myStream.Close();
			UpdateGrid();
		}
	}
}
Описание слайда:
Использование диалога Open protected void menuItemOpen_Click (object sender, System.EventArgs e) { // Настраиваем свойства диалогового окна для открытия файлов OpenFileDialog myOpenFileDialog = new OpenFileDialog(); myOpenFileDialog.InitialDirectory = "."; myOpenFileDialog.Filter = "car files (*.car)|*.car|All files(*.*)|*.*"; myOpenFileDialog.FilterIndex = 1; myOpenFileDialog.RestoreDirectory = true; // Восстанавливаем объекты автомобилей if(myOpenFileDialog.ShowDialog() = = DialogResult.OK) { // Очищаем текущий массив arTheCars.Clear(); Stream myStram = null; if((myStream = myOpenFileDiaog.OpenFile()) != null) { BinaryFormatter myBinaryFormat = new BinaryFormatter(); arTheCars = (ArrayList)myBinaryFormat.Deserilize(myStream); myStream.Close(); UpdateGrid(); } } }

Слайд 50





Использование диалога Save As
protected void menuItemSave_Click (object sender, System.EventArgs e)
{
	// Настраиваем свойства диалогового окна для сохранения файлов 
	SaveFileDialog mySaveFileDialog = new SaveFileDialog();
	mySaveFileDialog.InitialDirectory = ".";
	mySaveFileDialog.Filter = "car files (*.car)|*.car|All files(*.*)|*.*";
	mySaveFileDialog.FilterIndex = 1;
	mySaveFileDialog.RestoreDirectory = true;
	mySaveFileDialog..FileName = "carDoc";
	// Сохраняем объекты автомобилей
	if(mySaveFileDialog.ShowDialog() = = DialogResult.OK)
	{
		Stream myStram = null;
		if((myStream = mySaveFileDiaog.OpenFile()) != null)
		{
			BinaryFormatter myBinaryFormat = new BinaryFormatter();
			myBinaryFormat.Serialize(myStream, arTheCars);
			myStream.Close();
		}
	}
}
Описание слайда:
Использование диалога Save As protected void menuItemSave_Click (object sender, System.EventArgs e) { // Настраиваем свойства диалогового окна для сохранения файлов SaveFileDialog mySaveFileDialog = new SaveFileDialog(); mySaveFileDialog.InitialDirectory = "."; mySaveFileDialog.Filter = "car files (*.car)|*.car|All files(*.*)|*.*"; mySaveFileDialog.FilterIndex = 1; mySaveFileDialog.RestoreDirectory = true; mySaveFileDialog..FileName = "carDoc"; // Сохраняем объекты автомобилей if(mySaveFileDialog.ShowDialog() = = DialogResult.OK) { Stream myStram = null; if((myStream = mySaveFileDiaog.OpenFile()) != null) { BinaryFormatter myBinaryFormat = new BinaryFormatter(); myBinaryFormat.Serialize(myStream, arTheCars); myStream.Close(); } } }



Похожие презентации
Mypresentation.ru
Загрузить презентацию