Slide Input, Output With Net Framework Class Library Phạm Minh Tuấn

background image

Input/Output with
.NET Framework Class
Library

Phạm Minh Tuấn
Bộ môn CNPM – Khoa CNTT

background image

Nội dung trình bày

Navigating the File System

Reading and Writing Files

Compressing Streams

background image

Navigating the File System

Nhu cầu:

Làm sao biết được trên hệ thống có
những ổ đĩa nào?

Làm sao lấy được danh sách tập tin và
thư mục con của một thư mục nào đó?

Làm sao truy xuất được các thuộc tính
của một tập tin, thư mục?

Làm sao giám sát được sự thay đổi của
một tập tin, thư mục?

background image

Navigating the File System

Các lớp hỗ trợ

DriveInfo class

DirectoryInfo class

FileInfo class

Path class

FileSystemWatcher class

File class

Directory class

background image

Navigating the File System

DriveInfo class

Thuộc tính

background image

Navigating the File System

DriveInfo class

DriveType enum

Phương thức

background image

Navigating the File System

FileSystemInfo class

Thuộc tính

background image

Navigating the File System

FileSystemInfo class

Phương thức

background image

Navigating the File System

DirectoryInfo class

Thuộc tính

background image

Navigating the File System

DirectoryInfo class

Phương thức

background image

Navigating the File System

FileInfo class

Thuộc tính

background image

Navigating the File System

FileInfo class

Phương thức

background image

Navigating the File System

Path class

Phương thức

background image

Navigating the File System

Path class

Phương thức

background image

Navigating the File System

FileSystemWatcher class

Thuộc tính

background image

Navigating the File System

FileSystemWatcher class

Phương thức

Sự kiện

background image

Navigating the File System

Làm sao biết được trên hệ thống có những ổ

đĩa nào?

DriveInfo[]

drives =

DriveInfo.GetDrives

();

foreach (DriveInfo drive in drives)
{

Console.WriteLine("Drive: {0}",

drive.Name

);

Console.WriteLine("Type: {0}",

drive.DriveType

);

}

background image

Navigating the File System

Làm sao lấy được danh sách tập tin và thư

mục con của một thư mục nào đó?

DirectoryInfo

ourDir = new

DirectoryInfo(@"c:\windows");

Console.WriteLine("Directory: {0}",

ourDir.FullName

);

foreach (

FileInfo file in ourDir.GetFiles()

)

{
Console.WriteLine("File: {0}",

file.Name

);

}

background image

Navigating the File System

Làm sao truy xuất được các thuộc tính của một

tập tin, thư mục?

FileInfo

ourFile = new

FileInfo(@"c:\boot.ini ");

if (

ourFile.Exists

)

{
Console.WriteLine("Filename : {0}",

ourFile.Name

);

Console.WriteLine("Path : {0}",

ourFile.FullName

);

}

background image

Navigating the File System

Làm sao giám sát được sự thay đổi của một tập tin, thư

mục?

FileSystemWatcher

watcher = new

FileSystemWatcher();

watcher.Path = @"c:\";
watcher.Renamed += new

RenamedEventHandler(watcher_Renamed);

watcher.EnableRaisingEvents = true;

static void watcher_Renamed(object sender,
RenamedEventArgs e)
{
Console.WriteLine("Renamed from {0} to {1}",

e.OldFullPath, e.FullPath

);

}

background image

Navigating the File System

File class

Cung cấp tất cả các phương thức cần

thiết cho việc tạo file, xóa file, di

chuyển file, sao chép file…

Directory class

Cung cấp tất cả các phương thức cần

thiết cho việc tạo thư mục, xóa thư

mục, di chuyển thư mục, lấy danh

sách tập tin, thư mục con…

background image

Reading and Writing Files

Các lớp hỗ trợ

Stream class

FileStream class

StreamReader class, StreamWriter class

BinaryReader class, BinaryWriter class

MemoryStream class

BufferedStream class

background image

Reading and Writing Files

Stream class

Thuộc tính

background image

Reading and Writing Files

Stream class

Phương thức

background image

Reading and Writing Files

FileStream class: kế thừa Stream
class

Thuộc tính

Phương thức

background image

Reading and Writing Files

StreamReader class

Kế thừa TextReader class

Dùng để đọc các file văn bản

Thuộc tính

background image

Reading and Writing Files

StreamReader class

Phương thức

background image

Reading and Writing Files

Ví dụ

Đọc file văn bản

FileStream

theFile =

File.Open

(@"C:\boot.ini",

FileMode.Open, FileAccess.Read

);

StreamReader

rdr = new

StreamReader(theFile);

while (!rdr.

EndOfStream

)

{

string line = rdr.ReadLine();

Console.WriteLine(line);
}
rdr.

Close

();

theFile.

Close

();

background image

Reading and Writing Files

StreamWriter class

Kế thừa TextWriter class

Dùng để ghi các file văn bản

Thuộc tính

background image

Reading and Writing Files

StreamWriter class

Phương thức

background image

Reading and Writing Files

Ví dụ

Ghi file văn bản

FileStream

theFile =

File.Open

(@"c:\somefile.txt",

FileMode.OpenOrCreate,

FileAccess.Write

);

StreamWriter

writer = new

StreamWriter

(theFile);

writer.WriteLine("Hello");
writer.

Close

();

theFile.

Close

();

background image

Reading and Writing Files

BinaryReader class

Dùng để đọc file nhị phân

Cung cấp các phương thức có dạng

ReadXXX(ReadByte, ReadInt32…)

để

đọc nội dung file.

background image

Reading and Writing Files

Ví dụ

Đọc file nhị phân

FileStream

theFile =

File.Open

(@"c:\somefile.bin",

FileMode.Open);

BinaryReader

reader = new

BinaryReader

(theFile);

long number = reader.

ReadInt64

();

byte[] bytes = reader.

ReadBytes

(4);

string s = reader.

ReadString

();

background image

Reading and Writing Files

BinaryWriter class

Dùng để ghi file nhị phân

Cung cấp các phương thức

Write

với

nhiều dạng tham số khác nhau để ghi
nội dung file.

background image

Reading and Writing Files

Ví dụ

Ghi file nhị phân

FileStream

theFile =

File.Open

(@"c:\somefile.bin",

FileMode.OpenOrCreate, FileAccess.Write

);

BinaryWriter

writer = new

BinaryWriter

(theFile);

long number = 100;
byte[] bytes = new byte[] { 10, 20, 50, 100 };

string s = “Toi di hoc";
writer.

Write

(number);

writer.

Write

(bytes);

writer.

Write

(s);

background image

Reading and Writing Files

MemoryStream class:

kế thừa Stream

class

Thuộc tính

Phương thức

background image

Reading and Writing Files

Ví dụ

MemoryStream

memStrm = new

MemoryStream

();

StreamWriter

writer = new

StreamWriter

(memStrm);

writer.

WriteLine

("Hello");

writer.

WriteLine

("Goodbye");

writer.

Flush

();

FileStream

theFile =

File.Create

(@"c:\inmemory.txt");

memStrm.

WriteTo

(theFile);

background image

Reading and Writing Files

BufferedStream class

Thường dùng cho NetworkStream

Tăng hiệu quả đọc/ghi dữ liệu

FileStream

newFile =

File.Create

(@"c:\test.txt");

BufferedStream buffered =

new BufferedStream(newFile);

StreamWriter

writer =

new

StreamWriter

(buffered);

writer.

WriteLine

("Some data");

background image

Compressing Streams

Cho phép nén dữ liệu gốc tối đa là
4GB

Kiểu nén: GZIP và DEFLATE

Các lớp hỗ trợ

GZipStream class

DeflateStream class

background image

Compressing Streams

GZipStream class

Kế thừa Stream class

Dùng để nén/giải nén tập tin theo GZIP

Nén tập tin

FileStream

sourceFile =

File.OpenRead

(inFilename);

FileStream

destFile =

File.Create

(outFilename);

GZipStream compStream = new

GZipStream(sourceFile,

CompressionMode.Compress);

byte[] Arr = new byte[4096];
int theByte = sourceFile.

Read

(Arr, 0, 4096);

while(theByte!=0)
{
compStream.

Write

(Arr, 0, theByte);

theByte = sourceFile.

Read

(Arr, 0, 4096);

}

background image

Compressing Streams

GZipStream class

Giải nén tập tin

FileStream

sourceFile =

File.OpenRead

(inFilename);

FileStream

destFile =

File.Create

(outFilename);

GZipStream compStream = new

GZipStream(sourceFile,

CompressionMode.Decompress);

byte[] Arr = new byte[4096];
int theByte = compStream.

Read

(Arr, 0, 4096);

while (theByte != 0)
{
destFile.

Write

(Arr, 0, theByte);

theByte = compStream.

Read

(Arr, 0, 4096);

}

background image

Compressing Streams

DeflateStream class

Kết hợp giữa LZ77 và Huffman

Dùng tương tự như GZipStream class

Cho kích thước nén nhỏ hơn

File nén không thể mở được bằng các
chương trình giải nén khác.

background image

Q&A

Cám ơn các bạn đã theo dõi!

background image

background image


Document Outline


Wyszukiwarka

Podobne podstrony:
Ćw 1 Macierze input-output 2
NET Framework Czarna ksiŕga
Instalacja NET Framework
2006 09 Data Protection API i NET Framework 2 0 [Inzynieria Oprogramowania]
Starter input output
ASP NET AJAX Server Controls Zaawansowane programowanie w nurcie NET Framework 3 5 Microsoft NET Dev
Lecture 8 Input output, Exceptions
Visual Studio NET NET Framework Czarna ksiega 2
Ćw 1 Macierze input output
C 5 0 Programowanie Tworzenie aplikacji Windows 8 internetowych oraz biurowych w NET 4 5 Framework
C 5 0 Programowanie Tworzenie aplikacji Windows 8 internetowych oraz biurowych w NET 4 5 Framework c
Visual Studio NET NET Framework Czarna ksiega vsnetb
NET Framework Czarna ksiŕga
Boratyński, Jakub; Przybyliński, Michał; Świeczewska, Iwona Metody input output wybrane kierunki r

więcej podobnych podstron