C # – Tệp I / O


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

Luồng về cơ bản là chuỗi các byte đi qua đường truyền thông. Có hai luồng chính: luồng đầu vàodòng đầu ra. Các luồng đầu vào được sử dụng để đọc dữ liệu từ tệp (thao tác đọc) và dòng đầu ra được sử dụng để ghi vào tệp (thao tác ghi).

Các lớp C # I / O

Không gian tên System.IO có nhiều lớp khác nhau được sử dụng để thực hiện nhiều thao tác với tệp, chẳng hạn như tạo và xóa tệp, đọc hoặc ghi vào tệp, đóng tệp, v.v.

Bảng sau đây cho thấy một số lớp không trừu tượng thường được sử dụng trong không gian tên System.IO:

Sr.No.I / O Class & Description
1

BinaryReader

Đọc dữ liệu nguyên thủy từ một luồng nhị phân.

2

BinaryWriter

Viết dữ liệu nguyên thủy ở định dạng nhị phân.

3

BufferedStream

Bộ nhớ tạm thời cho một luồng byte.

4

Danh mục

Giúp thao tác với cấu trúc thư mục.

5

DirectoryInfo

Được sử dụng để thực hiện các hoạt động trên thư mục.

6

DriveInfo

Cung cấp thông tin cho các ổ đĩa.

7

Tập tin

Giúp thao tác với các tập tin.

số 8

Nộp thông tin

Được sử dụng để thực hiện các thao tác trên tệp.

9

Tập hồ sơ

Được sử dụng để đọc và ghi vào bất kỳ vị trí nào trong tệp.

10

MemoryStream

Được sử dụng để truy cập ngẫu nhiên vào dữ liệu được truyền trực tuyến được lưu trữ trong bộ nhớ.

11

Đường dẫn

Thực hiện các thao tác trên thông tin đường dẫn.

12

StreamReader

Được sử dụng để đọc các ký tự từ một luồng byte.

13

StreamWriter

Được sử dụng để ghi các ký tự vào một luồng.

14

StringReader

Được sử dụng để đọc từ bộ đệm chuỗi.

15

StringWriter

Được sử dụng để ghi vào một bộ đệm chuỗi.

Lớp FileStream

Các Tập hồ sơ lớp trong không gian tên System.IO giúp đọc từ, ghi và đóng tệp. Lớp này bắt nguồn từ lớp trừu tượng Stream.

Bạn cần tạo một Tập hồ sơ đối tượng để tạo một tệp mới hoặc mở một tệp hiện có. Cú pháp để tạo Tập hồ sơ đối tượng như sau:

FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
   <FileAccess Enumerator>, <FileShare Enumerator>);

Ví dụ: chúng tôi tạo một đối tượng FileStream F để đọc một tệp có tên sample.txt như hình

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
Sr.No.Mô tả về Thông Số
1

FileMode

Các FileMode điều tra viên xác định các phương pháp khác nhau để mở tệp. Các thành viên của bảng kê FileMode là:

  • Nối – Nó mở một tệp hiện có và đặt con trỏ ở cuối tệp hoặc tạo tệp, nếu tệp không tồn tại.

  • Tạo ra – Nó tạo ra một tệp mới.

  • Tạo mới – Nó chỉ định cho hệ điều hành, rằng nó sẽ tạo một tệp mới.

  • Mở – Nó mở một tệp hiện có.

  • OpenOrCreate – Nó chỉ định cho hệ điều hành rằng nó sẽ mở một tệp nếu nó tồn tại, nếu không nó sẽ tạo một tệp mới.

  • Cắt bớt – Nó mở một tệp hiện có và cắt bớt kích thước của nó xuống 0 byte.

2

Truy cập file

Truy cập file Điều tra viên có các thành viên: Đọc, Đọc viếtViết.

3

FileShare

FileShare Điều tra viên có các thành viên sau:

  • Kế thừa – Nó cho phép một trình xử lý tệp truyền thừa kế cho các quy trình con

  • Không có – Nó từ chối chia sẻ tệp hiện tại

  • Đọc – Nó cho phép mở tệp để đọc.

  • Đọc viết – Nó cho phép mở tệp để đọc và ghi

  • Viết – Nó cho phép mở tệp để ghi

Thí dụ

Chương trình sau minh họa việc sử dụng Tập hồ sơ lớp học –

using System;
using System.IO;

namespace FileIOApplication {
   class Program {
      static void Main(string[] args) {
         FileStream F = new FileStream("test.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();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

Thao tác tệp nâng cao trong C #

Ví dụ trước cung cấp các thao tác đơn giản với tệp trong C #. Tuy nhiên, để sử dụng sức mạnh to lớn của các lớp C # System.IO, bạn cần biết các thuộc tính và phương thức thường được sử dụng của các lớp này.