Xử lý tệp trong C#: I/O Operacác vấn đề [Ví dụ]
C# có nhiều thao tác với tệp. Các thao tác này bao gồm mở tệp, đọc hoặc ghi vào tệp. Có thể có những trường hợp trong đó bạn muốn làm việc trực tiếp với các tệp, trong trường hợp đó bạn sẽ sử dụng các thao tác tệp có sẵn trong C#. Một số thao tác cơ bản với tệp được đề cập dưới đây.
- Đọc - Thao tác này là thao tác đọc cơ bản trong đó dữ liệu được đọc từ một tệp.
- Viết - Thao tác này là thao tác ghi cơ bản trong đó dữ liệu được ghi vào một tệp. Theo mặc định, tất cả nội dung hiện có sẽ bị xóa khỏi tệp và nội dung mới sẽ được ghi.
- Nối thêm - Hoạt động này cũng liên quan đến việc ghi thông tin vào một tập tin. Sự khác biệt duy nhất là dữ liệu hiện có trong tệp không bị ghi đè. Dữ liệu mới cần ghi sẽ được thêm vào cuối tập tin.
Các lệnh I/O cơ bản
C# và .Net có thể làm việc với các tệp với sự trợ giúp của một số lệnh I/O tệp. Chúng ta hãy xem xét một số lệnh này. Trong ví dụ của chúng tôi, chúng tôi sẽ giả sử rằng chúng tôi có một tệp trong ổ D có tên là example.txt.
File sẽ là một file văn bản đơn giản và có 2 dòng như hình bên dưới
- Guru99 – .Net
- Guru99 -C#
Trong ví dụ của chúng tôi, chúng tôi sẽ tạo một ứng dụng Console đơn giản và làm việc với các lệnh Tệp I/O của chúng tôi. Ứng dụng bảng điều khiển là ứng dụng cơ bản đã được tạo trong hướng dẫn trước đó. Trong ứng dụng bảng điều khiển, tất cả mã được ghi vào tệp chương trình.cs.
File tồn tại
Phương thức File tồn tại được sử dụng để kiểm tra xem một tệp cụ thể có tồn tại hay không. Vì vậy, bây giờ hãy xem đoạn mã có thể được sử dụng để kiểm tra xem tệp example.txt của chúng tôi có tồn tại hay không. Nhập mã dưới đây vào tệp chương trình.cs.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; if (File.Exists(path)) { Console.WriteLine("File Exists"); } Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng tôi đang đặt một biến chuỗi có đường dẫn đến tệp example.txt của chúng tôi.
- Tiếp theo, chúng ta sử dụng phương thức File.Exists để kiểm tra xem file có tồn tại hay không. Nếu Tệp tồn tại, giá trị thực sẽ được trả về.
- Nếu chúng tôi nhận được giá trị thực và tệp tồn tại thì chúng tôi sẽ viết thông báo “Tệp tồn tại” vào bảng điều khiển.
Khi đoạn mã trên được thiết lập và dự án được thực thi bằng Visual Studio, bạn sẽ nhận được kết quả đầu ra bên dưới.
Đầu ra: -
Từ kết quả đầu ra ở trên, bạn có thể thấy lệnh File.Exists đã được thực thi thành công và thông báo chính xác được hiển thị trong cửa sổ bảng điều khiển.
Tệp.ReadAlllines
Phương thức này được sử dụng để đọc từng dòng một trong một tệp. Các dòng sau đó được lưu trữ trong một biến mảng chuỗi. Hãy xem một ví dụ. Nhập mã dưới đây vào tệp chương trình.cs.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String[] lines; lines = File.ReadAllLines(path); Console.WriteLine(lines[0]); Console.WriteLine(lines[1]); Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng ta khai báo một biến mảng chuỗi. Điều này sẽ được sử dụng để lưu trữ kết quả sẽ được trả về bằng phương thức File.ReadAllLines.
- Tiếp theo, chúng ta sử dụng phương thức File.ReadAllLines để đọc tất cả các dòng từ tệp văn bản của mình. Kết quả sau đó được chuyển đến biến dòng.
- Vì chúng ta biết rằng tệp của chúng ta chỉ chứa 2 dòng nên chúng ta có thể truy cập giá trị của các biến mảng thông qua lệnhlines[0] vàlines[1] .
Khi mã trên được đặt và dự án được chạy bằng cách sử dụng Visual Studio, bạn sẽ nhận được kết quả đầu ra dưới đây.
Đầu ra: -
Từ đầu ra, bạn có thể thấy lệnh File.ReadAllLines trả về cả hai dòng từ tệp example.txt của chúng tôi
Tệp.ReadAllText
Phương pháp này được sử dụng để đọc tất cả các dòng trong một tệp cùng một lúc. Các dòng sau đó được lưu trữ trong một biến chuỗi. Hãy xem một ví dụ. Nhập mã dưới đây vào tệp chương trình.cs.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String lines; lines = File.ReadAllText(path); Console.WriteLine(lines); Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng ta khai báo một biến chuỗi có tên là Lines. Điều này sẽ được sử dụng để lưu trữ kết quả sẽ được trả về bằng phương thức File.ReadAllText.
- Tiếp theo, chúng ta sử dụng phương thức File.ReadAllText để đọc tất cả các dòng từ tệp văn bản của mình. Kết quả sau đó được chuyển đến biến dòng.
- Chúng ta có thể trực tiếp sử dụng phương thức Console.Writeline để hiển thị giá trị của biến Lines.
Khi đoạn mã trên được thiết lập và dự án được chạy bằng Visual Studio, bạn sẽ nhận được kết quả đầu ra bên dưới.
Đầu ra: -
Từ đầu ra, bạn có thể thấy lệnh File.ReadAlltext trả về cả hai dòng từ tệp example.txt của chúng tôi
Sao chép tập tin
Phương pháp này được sử dụng để tạo một bản sao của một tập tin hiện có. Hãy xem một ví dụ. Nhập mã dưới đây vào tệp chương trình.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String copypath = @"D:\ExampleNew.txt"; File.Copy(path,copypath); Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng ta khai báo một biến chuỗi có tên là path. Đây sẽ là vị trí của tệp example.txt của chúng tôi. Tệp này sẽ là tệp nguồn được sử dụng cho thao tác sao chép.
- Tiếp theo, chúng ta khai báo một biến chuỗi có tên là copypath. Đây sẽ là vị trí của một tệp mới có tên là tệp exampleNew.txt. Đây sẽ là tệp đích trong đó nội dung sẽ được ghi từ tệp nguồn example.txt.
- Sau đó chúng ta gọi phương thức File.Copy để sao chép file File.txt vào file exampleNew.txt.
Khi mã trên được thiết lập và dự án được chạy bằng Visual Studio, tệp Example.txt sẽ được sao chép vào ExampleNew.txt.
Tệp.Xóa
Phương pháp này được sử dụng để xóa một tập tin hiện có. Hãy xem một ví dụ. Nhập mã dưới đây vào tệp chương trình.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; File.Delete(path); Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng ta khai báo một biến chuỗi có tên là path. Đây sẽ là vị trí của tệp example.txt của chúng tôi. Đây là tập tin sẽ bị xóa.
- Tiếp theo, chúng ta gọi phương thức File.Delete để xóa tệp.
Khi mã trên được thiết lập và dự án được chạy bằng Visual Studio, tệp Example.txt sẽ bị xóa khỏi ổ đĩa D.
Tổng kết
- C# có một số thao tác với Tệp có thể được thực hiện trên các tệp. Hầu hết các hoạt động này là một phần của lớp File.
- Nếu bạn muốn đọc dữ liệu từ một tệp, bạn có thể sử dụng các phương thức File.ReadAlltext hoặc File.ReadAllLines.
Phương thức tập tin | Mô tả |
---|---|
File tồn tại | Phương thức tồn tại tệp được sử dụng để kiểm tra xem một tệp cụ thể có tồn tại hay không. |
Tệp.ReadAlllines | Phương thức này được sử dụng để đọc từng dòng một trong một tệp. |
Tệp.ReadAllText | Phương pháp này được sử dụng để đọc tất cả các dòng trong một tệp cùng một lúc. |
Sao chép tập tin | Phương pháp này được sử dụng để tạo một bản sao của một tập tin hiện có. |
Tệp.Xóa | Phương pháp này được sử dụng để xóa một tập tin hiện có. |