Thủ Thuật Hướng dẫn Streamreader trong C# là gì Mới Nhất
Bann đang tìm kiếm từ khóa Streamreader trong C# là gì 2022-04-03 21:08:04 san sẻ Bí kíp về trong nội dung bài viết một cách 2022.
FileStream là một loại stream đặc biệt quan trọng chuyên vốn để làm đọc ghi tài liệu với file. Đây là những khái niệm tương đối mới và khá đặc trưng của C# và .NET. Bài học này sẽ tương hỗ cho bạn nắm được kỹ thuật đọc ghi file với FileStream và cách thao tác với file/thư mục trong C#.
Làm việc với file và thư mụcTrước hết toàn bộ chúng ta sẽ học cách sử dụng dụng những lớp .NET tương hỗ thao tác với khối mạng lưới hệ thống file của windows. Tất cả những lớp để thao tác với file trong .NET nằm trong không khí tên System.IO. Ba class chính để thao tác với khối mạng lưới hệ thống file là Directory (thao tác với thư mục), File (thao tác với file), Path (thao tác với đường dẫn). Lớp DirectoryLớp Directory chứa hầu hết những phương thức tĩnh giúp thao tác với file và thư mục. Dưới đấy là một số trong những phương thức của lớp này giúp kiểm tra đường dẫn và giúp lấy list file trong một thư mục. Phương thức tĩnh GetFiles: tìm toàn bộ những file trong thư mục có phần mở rộng theo yêu cầu. Ví dụ tại đây tìm toàn bộ những file exe trong thư mục E:Catalogue: Directory.GetFiles(@”E:CATALOGUE”, “*.exe”, SearchOption.AllDirectories) Phương thức này sử dụng ba tham số:
Kết quả tiến hành của phương thức này là một mảng string chứa tên khá đầy đủ (gồm có cả đường dẫn) của những file tìm thấy. Tương thự, phương thức GetDirectories trả về list toàn bộ những thư mục con trong một thư mục. Phương thức tĩnh Exists : kiểm tra xem một đường dẫn tới thư mục có tồn tại hoặc đúng chuẩn không. > Directory.Exists(@”C:Program Files”) Phương thức CreateDirectory: tạo thư mục mới. Phương thức Delete: xóa thư mục. Bạn trọn vẹn có thể thuận tiện và đơn thuần và giản dị tìm hiểu được cách sử dụng của những phương thức còn sót lại của lớp này. Lớp PathLớp Path cũng chứa hầu hết những phương thức tĩnh giúp phân tích đường dẫn tới file hoặc thư mục. Dưới đấy là cách sử dụng một phương thức của lớp này: Phương thức GetDirectoryName trả lại phần tên thư mục trong đường dẫn tới file. Phương thức GetFileName trích ra phần tên file trong một đường dẫn tới file, bỏ phần đường dẫn thư mục. Phương thức GetFileNameWithoutExtension trích ra phần tên của file, bỏ phần đường dẫn và phần mở rộng. Phương thức GetExtension trả về phần mở rộng của tên file hoặc thư mục. Các phương thức của lớp Path đều tương đối dễ sử dụng. Bạn đọc trọn vẹn có thể tự mình tìm hiểu những phương thức khác. Đọc/ghi tài liệu với file trong C#, FileStreamỞ phần trước toàn bộ chúng ta đã xem xét tổng thể về stream trong .NET framework. Trong phần này toàn bộ chúng ta sẽ thao tác với một loại luồng backing store rõ ràng trong C#: FileStream. Khởi tạo FileStreamTrong C# bạn cũng trọn vẹn có thể khởi tạo FileStream theo nhiều cách thức rất khác nhau: // sử dụng hàm tạo của lớp FileStream // sử dụng những phương thức tĩnh của lớp File Tất cả những cách trên có điểm chung là cần phải phục vụ nhu yếu một đường dẫn tới file. Cách thứ nhất là linh hoạt nhất, được cho phép lựa chọn quyết sách thao tác với file, FileMode. Ba phương pháp còn sót lại đều là những “lối tắt” giúp đơn thuần và giản dị hóa việc mở file. Thực chất, chúng tương tự với một số trong những quyết sách của FileMode ở phương pháp thứ nhất. Sau khi khởi tạo trọn vẹn có thể khởi đầu đọc/ghi tài liệu với file. Tuy nhiên, hiện tại bạn chỉ có đọc và xử lý những byte thô trực tiếp từ FileStream. Để trọn vẹn có thể xử lý trong chương trình, bạn phải tự mình biến hóa những byte đó về kiểu tài liệu mà chương trình cần đến. Ghi vào file qua FileStreamHãy xem ví dụ sau: int i = 1234; Trong ví dụ này, bạn ghi vào file một số trong những nguyên i có mức giá trị 1234 và một chuỗi có mức giá trị “Hello world”. Như bạn đã biết từ bài học kinh nghiệm tay nghề về stream, những luồng backing store trọn vẹn thao tác với byte hoặc mảng byte. Chúng không biết về những loại giá trị cấp cao như int, string, bool hay những object. Do đó bạn phải biến hóa toàn bộ những giá trị về mảng byte. Đối với những kiểu tài liệu cơ sở (int, bool, char, v.v.), .NET framework phục vụ nhu yếu lớp BitConverter để biến hóa về mảng byte và ngược lại. Đối với tài liệu văn bản cần sử dụng lớp Encoding. Kiểu byte chỉ sử dụng 1 byte để màn biểu diễn, do đó màn biểu diễn ở dạng mảng byte của giá trị thuộc kiểu byte là một mảng có một phần từ và chứa giá chuẩn trị đó.
Đến đây phát sinh yếu tố: trật tự của những thành phần trong mảng, gọi là endianness. Có hai Xu thế rất khác nhau để viết thứ tự những byte trong mảng: Phương thức Write của FileStream thực thi phương thức abstract tương ứng của lớp Stream được cho phép ghi một mảng byte vào luồng. Phương thức này chỉ ghi <count> byte khởi đầu từ vị trí <offset>, trong số đó offset và count lần lượt là tham số thứ hai và thứ 3 của phương thức này. Trong ví dụ trên, phương thức GetByte của BitConverter chuyển biến i thành một mảng 4 byte (do int là kiểu tài liệu màn biểu diễn bằng 4 byte). Mảng này được ghi trọn vẹn vào file, do đó offset = 0, count = 4. Đối với kiểu string, màn biểu diễn dạng mảng byte của nó tùy từng cách mã hóa ký tự (encoding). Nếu dùng mã ASCII, mỗi ký tự là một trong những byte nhưng nếu dùng mã hóa nhiều byte như Unicode, số byte cho từng ký tự trọn vẹn có thể rất khác nhau. Vì vậy, .NET phục vụ nhu yếu lớp Encoding để tiến hành quy đổi này. Mỗi stream thường phục vụ nhu yếu một bộ nhớ đệm để tương hỗ đọc ghi tài liệu. FileStream cũng thế. Khi ghi, tài liệu được lưu tạm ở bộ nhớ đệm trước lúc thực sự ghi vào file. Nếu muốn tài liệu được đẩy ngay vào file trọn vẹn có thể gọi phương thức Flush. Trong suốt quy trình thao tác, file sẽ bị khóa và object khác không thể thao tác với file này. Vì vậy, sau khoản thời hạn kết thúc thao tác với file nên gọi phương thức Close để đóng luồng và giải phóng file. Đọc từ file qua FileStreamHãy cùng xem ví dụ sau: var fs = new FileStream(“data1.bin”, FileMode.OpenOrCreate, FileAccess.Read); Trong ví dụ này, toàn bộ chúng ta mở lại file đã tạo lúc trước và đọc những giá trị lưu ở trong số đó, gồm có một số trong những nguyên và một chuỗi ký tự. Để đọc ra một giá trị, toàn bộ chúng ta phải tạo ra một mảng đệm trước để luồng file đưa giá trị vào. Mảng đệm này phải có kích thước bằng hoặc to nhiều hơn tài liệu được đọc ra. Với kiểu int, kích thước là cố định và thắt chặt (4 byte); với kiểu string, do kích thước không cố định và thắt chặt nên ta phải tính toán ra kích thước của nó (bằng tổng số byte trong file trừ đi số byte mà biến int chiếm). Sau khi đọc được tài liệu vào mảng đệm, toàn bộ chúng ta sử dụng những phương thức tương ứng của BitConverter và Encoding để quy đổi về kiểu tài liệu thiết yếu. Các yếu tố tương quan đến FileStream trong C#Như ở trên toàn bộ chúng ta thấy, việc đọc ghi trực tiếp với FileStream trong C# rất rắc rối, đặc biệt quan trọng khi cần ghi/đọc những object phức tạp. Để xử lý và xử lý một phần yếu tố này, bạn cũng trọn vẹn có thể sử dụng những lớp stream adapter. Stream adapter đóng vai trò tương hỗ sử dụng luồng backing store bằng phương pháp che đi những phương thức thao tác trực tiếp với byte và phục vụ nhu yếu thêm những phương thức để xử lý tài liệu cấp cao. Tùy thuộc vào kiểu tài liệu cần thao tác toàn bộ chúng ta lựa chọn những loại adapter rất khác nhau. Hãy cùng xem ví dụ sau: FileStream fs = new FileStream(“data1.bin”, FileMode.Create, FileAccess.ReadWrite); fs = new FileStream(“data1.bin”, FileMode.OpenOrCreate, FileAccess.Read); Trong ví dụ này toàn bộ chúng ta sử dụng hai loại adapter: BinaryWriter/BinaryReader để thao tác với những kiểu cơ sở (trừ kiểu string); StreamWriter/StreamReader để thao tác với tài liệu văn bản. Khi sử dụng hai loại adapter này, việc đọc/ghi tài liệu với FileStream được đơn thuần và giản dị hóa thật nhiều vì những adapter đã đứng ra phụ trách biến hóa tài liệu trong quy trình đọc/ghi. Các phương thức của hai loại adapter này cũng rất giống với phương pháp đọc/ghi tài liệu từ giao diện console mà bạn đã quen thuộc. Một số phương thức “tắt”Ngoài việc sử dụng những phương pháp “chính thống” như ở trên đã xem xét, lớp File cũng phục vụ nhu yếu cho toàn bộ chúng ta nhiều phương thức “tắt” để đơn thuần và giản dị hóa việc ghi/đọc tài liệu với file:
Các phương thức này tuy rằng tiện lợi nhưng trọn vẹn có thể làm mất đi một phần tính hiệu suất cao của FileStream. Ví dụ, những lệnh đọc tắt này đọc toàn bộ tài liệu vào bộ nhớ, vốn rất không hiệu suất cao nếu file lớn. Sử dụng using blockTrong những ví dụ trên, sau khoản thời hạn kết thúc thao tác với file, toàn bộ chúng ta phải tự mình gọi lệnh đóng luồng file. Đây là một thao tác rất hay bị bỏ quên. Trong những trường hợp khác, toàn bộ chúng ta chỉ việc sử dụng object trong một khối code nhất định, tiếp sau đó object bị hủy bỏ hoặc không tiếp tục sử dụng nữa. Để giải phóng người lập trình khỏi việc phải tự mình hủy bỏ những object như vậy, C# phục vụ nhu yếu một cấu trúc mới: using block. Hãy cùng xem ví dụ sau: using (FileStream fs = new FileStream(“data1.bin”, FileMode.Create, FileAccess.ReadWrite)) BinaryWriter bWriter = new BinaryWriter(fs); using (var fs = new FileStream(“data1.bin”, FileMode.OpenOrCreate, FileAccess.Read)) BinaryReader bReader = new BinaryReader(fs); Ở hai đoạn code này toàn bộ chúng ta không cần tự mình đóng luồng nữa. Biến fs được tạo ra trong cấu trúc using và được cấu trúc này theo dõi. Khi kết thúc khối code, biến fs sẽ tự bị hủy bỏ. Cấu trúc này rất thường xuyên được sử dụng khi thao tác với luồng. Khi sử dụng những phương thức “tắt” như File.WriteAllText, File.ReadAllText, File.WriteAllBytes, File.ReadAllBytes, File.WriteAllLines, File.ReadAllLines, file được mở và đóng tự động hóa. Chúng ta không cần tự mình tiến hành những thao tác thao tác với file thường thì nữa. Vì vậy những phương thức này được gọi là những phương thức tắt. Kết luậnBài học này đã hỗ trợ cho bạn biết phương pháp thao tác với loại stream thứ nhất là FileStream giúp đọc ghi tài liệu với file. Bạn cũng học được cách thao tác với khối mạng lưới hệ thống file của windows từ chương trình C#. + Nếu bạn thấy site hữu ích, trước lúc rời đi hãy giúp sức site bằng một hành vi nhỏ để site trọn vẹn có thể tăng trưởng và phục vụ bạn tốt hơn. Video tương quan |
Chia sẻ
Review Streamreader trong C# là gì ?
Một số hướng dẫn một cách rõ ràng hơn về đoạn Clip Streamreader trong C# là gì tiên tiến và phát triển nhất .
Chia Sẻ Link Cập nhật Streamreader trong C# là gì miễn phí
Bạn đang tìm một số trong những Share Link Cập nhật Streamreader trong C# là gì Free.
#Streamreader #trong #là #gì