• HÃY CÙNG TẠO & THẢO LUẬN CÁC CHỦ ĐỀ KIẾN THỨC [Vn Kiến Thức] - Định hướng VnKienthuc.com
    -
    Mọi kiến thức & Thông tin trên VnKienthuc chỉ mang tính chất tham khảo, Diễn đàn không chịu bất kỳ trách nhiệm liên quan
    - VnKienthuc tạm khóa đăng ký tài khoản tự động để hạn chế SEO bẩn, SPAM, quảng cáo. Chưa đăng ký, KHÁCH vẫn có thể đọc và bình luận.

uocmo_kchodoi

Moderator
Xu
0
Một tập tin là một tập hợp các dữ liệu được lưu trữ trong một đĩa với một tên cụ thể và một đường dẫn thư mục. Khi một tập tin được mở để đọc hoặc viết, nó sẽ trở thành một luồng tin.

Các luồng tin cơ bản là trình tự của byte đi qua con đường truyền thông. Có hai luồng chính: luồng đầu vào và luồng đầu ra. Các luồng đầu vào được sử dụng để đọc dữ liệu từ tập tin (đọc hoạt động) và các luồng sản lượng được sử dụng cho việc ghi lên tập tin (ghi hoạt động).


1. Lớp I/O trong C#

System.IO namespace có nhiều lớp đa dạng mà được sử dụng để thực hiện các hoạt động khác nhau với File, như tạo và xóa file, đọc và ghi một File, đóng một File, …

Bảng sau hiển thị một số lớp non-abstract được sử dụng phổ biến trong System.IO namespace trong C#:

I/O Class:
BinaryReader: Đọc dữ liệu gốc (primitive data) từ một binary stream
BinaryWriter: Ghi dữ liệu gốc trong định dạng nhị phân
BufferedStream: Một nơi lưu giữ tạm thời cho một stream
Directory: Giúp ích trong việc thao tác một cấu trúc thư mục
DirectoryInfo: Được sử dụng để thực hiện các hoạt động trên các thư mục
DriveInfo: Cung cấp thông tin cho các Drive
File: Giúp ích trong việc thao tác các File
FileInfo: Được sử dụng để thực hiện các hoạt động trên các File
FileStream: Được sử dụng để đọc và ghi bất kỳ vị trí nào trong một File
MemoryStream: Được sử dụng để truy cập ngẫu nhiên tới stream được lưu giữ trong bộ nhớ
Path: Thực hiện các hoạt động trên thông tin path
StreamReader: Được sử dụng để đọc các ký tự từ một stream
StreamWriter: Được sử dụng để ghi các ký tự tới một stream
StringReader: Được sử dụng để đọc từ một string buffer
StringWriter: Được sử dụng để ghi vào một string buffer

2. Lớp FileStream trong C#

Lớp FileStream trong System.IO namespace trong C# giúp đỡ trong việc đọc từ, ghi và đóng các File. Lớp này kế thừa từ lớp abstract là Stream.

Bạn cần tạo một đối tượng FileStream để tạo một File mới hoặc mở một File đang tồn tại. Cú pháp để tạo một đối tượng FileStream trong C# như sau:

FileStream <tên_đối_tượng> = new FileStream( <tên_file>, <FileMode>, <FileAccess>, <FileShare>);

Ví dụ: chúng ta tạo một đối tượng FileStream là F để đọc một File với tên sample.txt, như sau:

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);

Tham số:
* FileMode
- FileMode enumerator định nghĩa các phương thức đa dạng để mở các File.
- Các thành viên của FileMode enumerator là:

  • Append: Nó mở một File đang tồn tại và đặt con trỏ tại phần cuối của File, hoặc tạo File, nếu File đó chưa tồn tại
  • Create: Nó tạo một File mới
  • CreateNew: Nó xác định tới Hệ điều hành rằng nó nên tạo một File mới
  • Open: Nó mở một File đang tồn tại
  • OpenOrCreate: Nó xác định tới Hệ điều hành rằng nó nên mở một File nếu nó tồn tại, nếu không thì nó nên tạo một File mới
  • Truncate: Nó mở một File đang tồn tại và truncate (cắt) kích cỡ của nó về 0 byte
* FileAccess
- FileAccess enumerators có các thành viên là: Read, ReadWrite và Write.
* FileShare
- FileShare enumerators có các thành viên sau:

  • Inheritable: Nó cho phép một File truyền tính kế thừa tới các tiến trình con
  • None: Nó từ chối việc chia sẻ File hiện tại
  • Read: Nó cho phép mở File để đọc
  • ReadWrite: Nó cho phép mở File để đọc và ghi
  • Write: Nó cho phép mở File để ghi
Ví dụ

Dưới đây là ví dụ minh họa cách sử dụng của lớp FileStream trong C#:

using System;
using System.IO;
namespace VietJackCsharp
{
class TestCsharp
{
static void Main(string[] args)
{
Console.WriteLine("Vi du minh hoa File I/O trong C#");
Console.WriteLine("---------------------------------");

FileStream F = new FileStream("binary.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);
for (int i = 1; i <= 20; i++)
{
F.WriteByte((byte)i);
}

F.Position = 0;
for (int i = 0; i <= 20; i++)
{
Console.Write(F.ReadByte() + " ");
}
F.Close();

Console.ReadKey();
}
}
}
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:

file-io.PNG

Nguồn: vietjack.com
 
Sửa lần cuối bởi điều hành viên:
Một tập tin là một tập hợp các dữ liệu được lưu trữ trong một đĩa với một tên cụ thể và một đường dẫn thư mục. Khi một tập tin được mở để đọc hoặc viết, nó sẽ trở thành một luồng tin.

Các luồng tin cơ bản là trình tự của byte đi qua con đường truyền thông. Có hai luồng chính: luồng đầu vào và luồng đầu ra. Các luồng đầu vào được sử dụng để đọc dữ liệu từ tập tin (đọc hoạt động) và các luồng sản lượng được sử dụng cho việc ghi lên tập tin (ghi hoạt động).

Lớp I/O

Namespace System.IO có các lớp khác nhau được sử dụng để thực hiện nhiều hoạt động với các tập tin, chẳng hạn như việc tạo và xóa các tập tin, đọc hoặc viết vào một tập tin, đóng một tập tin, vv..

Lớp FileStream

Các lớp FileStream trong namespace System.IO giúp đọc, ghi và đóng file. Lớp này xuất phát từ lớp trừu tượng Stream.
 
CHAT
  1. No shouts have been posted yet.

Chủ đề mới

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top