Menguasai File I/O C#: Membaca, Menulis, dan Mengelola Aliran
Sebuah file adalah kumpulan data yang disimpan di disk dengan nama dan jalur direktori tertentu. Ketika file dibuka untuk dibaca atau ditulis, menjadi sebuah stream.
Stream pada dasarnya adalah urutan byte yang melewati jalur komunikasi. Ada dua stream utama: input stream dan output stream. Input stream digunakan untuk membaca data dari file (operasi baca) dan output stream digunakan untuk menulis ke file (operasi tulis).
Kelas I/O C#
Namespace System.IO memiliki berbagai kelas yang digunakan untuk melakukan berbagai operasi dengan file, seperti membuat dan menghapus file, membaca dari atau menulis ke file, menutup file, dll.
Tabel berikut menunjukkan beberapa kelas non-abstrak yang umum digunakan dalam namespace System.IO:
| No. | Kelas I/O & Deskripsi |
| 1 | BinaryReader Membaca data primitif dari stream biner. |
| 2 | BinaryWriter Menulis data primitif dalam format biner. |
| 3 | BufferedStream Penyimpanan sementara untuk stream byte. |
| 4 | Directory Membantu dalam memanipulasi struktur direktori. |
| 5 | DirectoryInfo Digunakan untuk melakukan operasi pada direktori. |
| 6 | DriveInfo Menyediakan informasi untuk drive. |
| 7 | File Membantu dalam memanipulasi file. |
| 8 | FileInfo Digunakan untuk melakukan operasi pada file. |
| 9 | FileStream Digunakan untuk membaca dari dan menulis ke lokasi apa pun dalam file. |
| 10 | MemoryStream Digunakan untuk akses acak ke data stream yang disimpan dalam memori. |
| 11 | Path Melakukan operasi pada informasi path. |
| 12 | StreamReader Digunakan untuk membaca karakter dari stream byte. |
| 13 | StreamWriter Digunakan untuk menulis karakter ke stream. |
| 14 | StringReader Digunakan untuk membaca dari buffer string. |
| 15 | StringWriter Digunakan untuk menulis ke buffer string. |
Kelas FileStream
Kelas FileStream dalam namespace System.IO membantu dalam membaca dari, menulis ke, dan menutup file. Kelas ini diturunkan dari kelas abstrak Stream.
Anda perlu membuat objek FileStream untuk membuat file baru atau membuka file yang ada. Sintaks untuk membuat objek FileStream adalah sebagai berikut:
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Contohnya, kita membuat objek FileStream F untuk membaca file bernama sample.txt seperti ditunjukkan berikut:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read); | No. | Parameter & Deskripsi |
| 1 | FileMode Enumerator FileMode mendefinisikan berbagai metode untuk membuka file. Anggota enumerator FileMode adalah sebagai berikut: Append – Membuka file yang ada dan menempatkan kursor di akhir file, atau membuat file, jika file tidak ada. Create – Membuat file baru. CreateNew – Menentukan ke sistem operasi bahwa harus membuat file baru. Open – Membuka file yang ada. OpenOrCreate – Menentukan ke sistem operasi bahwa harus membuka file jika ada, jika tidak harus membuat file baru. Truncate – Membuka file yang ada dan memotong ukurannya menjadi nol byte. |
| 2 | FileAccess Enumerator FileAccess memiliki anggota: Read, ReadWrite dan Write. |
| 3 | FileShare Enumerator FileShare memiliki anggota berikut: Inheritable – Memungkinkan handle file untuk mewarisi warisan ke proses anak. None – Menolak berbagi file saat ini Read – Memungkinkan membuka file untuk membaca. ReadWrite – Memungkinkan membuka file untuk membaca dan menulis Write – Memungkinkan membuka file untuk menulis |
Contoh
Program berikut menunjukkan penggunaan kelas FileStream:
Live Demo
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(); } } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
Operasi File Lanjutan dalam C#
Contoh sebelumnya memberikan operasi file sederhana dalam C#. Namun, untuk memanfaatkan kekuatan luar biasa kelas C# System.IO, Anda perlu mengetahui properti dan metode yang umum digunakan dari kelas-kelas ini.
| No. | Topik & Deskripsi |
| 1 | Membaca dari dan Menulis ke File Teks Melibatkan membaca dari dan menulis ke file teks. Kelas StreamReader dan StreamWriter membantu untuk menyelesaikannya. |
| 2 | Membaca dari dan Menulis ke File Biner Melibatkan membaca dari dan menulis ke file biner. Kelas BinaryReader dan BinaryWriter membantu untuk menyelesaikannya. |
| 3 | Memanipulasi Sistem File Windows Memberi programmer C# kemampuan untuk menelusuri dan menemukan file dan direktori Windows. |