Thông tin tài liệu:
Cung cấp khả năng khởi tạo, đọc, viết và khả năng cập nhật File.
Hiểu được luồng thông tin (Stream) trong C#.
Có thể sử dụng lớp File và thư mục.
Có thể sử dụng được các lớp FileStream và lớp BinaryFormatter để đọc và viết các đối tượng vào trong các File.
Nắm vững việc xử lý các File truy xuất tuần tự và File truy xuất ngẫu nhiên.
Nội dung trích xuất từ tài liệu:
Chương 8: Files và Streams
Chương 8 . Files và Streams
Outline
8.1. Files và Streams
8.2. Lớp File và lớp Directory
8.3. File truy xuất tuần tự
8.4. File truy xuất ngẫu nhiên
8.1. Files và Streams
Mục đích của nghiên cứu phần này:
Cung cấp khả năng khởi tạo, đọc, viết và khả năng cập nhật File.
Hiểu được luồng thông tin (Stream) trong C#.
Có thể sử dụng lớp File và thư mục.
Có thể sử dụng được các lớp FileStream và lớp BinaryFormatter
để đọc và viết các đối tượng vào trong các File.
Nắm vững việc xử lý các File truy xuất tuần tự và File truy xu ất
ngẫu nhiên.
Files ?
File được sử dụng như bộ nhớ ngoài để lưu trữ với số lượng lớn
dữ liệu,và có thể giữ lại dữ liệu thậm chí sau khi ch ương trình k ết
thúc.
Mỗi File kết thúc với một kí tự đánh dấu kết thúc File ho ặc m ột
số Byte xác định được ghi trong hệ thống lưu trữ qu ản lý cấu trúc
dữ liệu.
Phần tử cuối Dấu hiệu
Phần tử đầu
(thứ n) của kết thúc
tiên của File
File File
Cấu tạo của File trong lưu trữ
Stream ?
Stream (luồng) là luồng của thông tin, ch ứa thông tin s ẽ đ ược
chuyển qua, còn tập tin thì để lưu trữ thông tin.
8.1. Files và Streams
Khi một File được mở ra:
C# sẽ tạo một đối tượng.
Nối luồng thông tin với đối tượng này.
Có 3 đối tượng stream:
Console.In : trả về một đối tượng stream vào chuẩn.
Console.Out: trả về một đối tượng stream ra chuẩn.
Console.Error: trả về một đối tượng stream thông báo lỗi chuẩn.
8.1. Files và Streams
BinaryFormatter sử dụng 2 phương thức Serialize và Deserialize để
viết và đọc đối tượng từ trong luồng:
Serialize:chuyển đổi một đối tượng sang một định dạng, và
có thể được viết vào File mà không mất dữ liệu.
Deserialize: đọc dữ liệu đã định dạng từ một File và chuyển
nó về dạng ban đầu.
System.IO.Stream cho phép thể hiện dưới dạng bit của stream:
FileStream: đọc và viết từ File truy xuất trình tự và ngẫu nhiên:
MemoryStream: chuyển đổi dữ liệu trực tiếp với bộ nhớ.
BufferedStream: sử dụng bộ nhớ đệm để chuyển dữ liệu.
8.2. Lớp File và lớp Directory
Thông tin được lưu trữ trên các files
Files được tổ chức thành các thư mục
Lớp Directory dùng để thao tác các thư mục
Lớp File dùng để thao tác trên các files
Chỉ có phương thức tĩnh,không thể khởi tạo đối tượng File
8.2. Lớp File và lớp Directory
static M etho d De sc rip tio n
AppendText Trả lại một StreamWriter nối tiếp vào file đã tồn tại hoặc tạo
một file nếu nó chưa có .
Copy Copy một file vào file mớ i.
Create Tạo một file và trả l ại FileStream tươ ng ứ ng của nó.
CreateText Tạo một file text và trả lại StreamWriter tươ ng ứ ng của nó .
Delete Xoá một file.
GetCreationTime Trả lại đối tượ ng DateTime tượ ng trư ng cho thời gian mà file
đượ c tạo ra .
GetLastAccessTime Trả lại đối tượ ng DateTime đại diện cho thời gian file đượ c
truy cập lần cuối
GetLastWriteTime Trả lại đối tượ ng DateTime đại diện cho thời gian file đượ c
thay đổi lần cuối
Move Di chuyển một file đến m ột vị trí xác định nào đó
Open Trả lại FileStream kết hợp vớ i một file xác định và trang bị
cho nó quyền đọc/ghi .
OpenRead Trả lại read-only FileStream gắn với một file nào đó xác định.
OpenText Trả lại một StreamReader gắn vớ i một file xác định.
OpenWrite Trả lại read/write FileStream gắn với một file xác định.
Hình 8.2 c á c p hươ ng thức c ủa lớp File .
8.2. Lớp File và lớp Directory
1 // FileTest.cs
2 // Using classes File and Directory.
3
4 using System; FileTest.cs
5 using System.Drawing;
6 using System.Collections;
7 using System.ComponentModel;
8 using System.Windows.Forms;
9 using System.Data;
10 using System.IO;
11
12 // displays contents of files and directories
13 public class FileTestForm : System.Windows.Forms.Form
14 {
15 private System.Windows.Forms.Label directionsLabel;
16
17 private System.Windows.Forms.TextBox outputTextBox; Textbox để nhập
18 private System.Windows.Forms.TextBox inputTextBox; đường dẫn file và thư
19 mục
20 private System.ComponentModel.Container components = null;
21
22 [STAThread]
23 static void Main()
24 {
25 Application.Run( new FileTestForm() );
26 }
27
28 // Visual Studio .NET generated code Kiểm soát việc
29
30 // invoked when user presses key gõ phím enter
31 private void inputTextBox_KeyDown(
32 object sender, System.Windows.Forms.KeyEventArgs e )
33 {
34 // determine whether user pressed Enter key
35 if ( e.KeyCode == Keys.Enter ) Kiểm tra nếu
36 { phím được nhấn
37 string fileName; // name of file or directory là enter FileTest.cs
38
39 // get user-specified file or directory
40 fileName = inputTextBox.Text; Đặt filename do
41 người dùng nhập
42 // determine whether fileName is a file
43 if ( File.Exists( fileName ) )
44 ...