Language

Filestream merupakan kelas yang menyediakan fungsi untuk melakukan akses stream (aliran byte) data pada sebuah file. Kelas ini disediakan olen .Net Framework mulai dari versi 1.1 keatas. Pada artikel ini, akan dibahas bagaimana membaca data dari sebuah file dan menampilkan data dari file tersebut pada aplikasi menggunakan visual basic.

Pertama sekali buatlah sebuah project baru dan tambahkan beberapa control berikut :

  • 1 RichTextBox, dengan nama RichTextBox1.
  • 2 Button, dengan nama Button1 dan Button2.
  • 1 OpenFileDialog, dengan nama OpenFileDialog1.
Control Properties
RichTextBox1 -
Button1 Text = "Open"
Button2 Text = "Clear"
OpenFileDialog1 -

 

Adapun tampilan dari rancangan pada ide anda dapat dilihat pada gambar berikut :

Berikutnya kita akan membahas kode program untuk dapat membuka dan membaca file. Tahap pertama adalah membuat kode untuk Button1 pada saat di-klik :

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim FileReader As IO.FileStream
        Dim DlgResult As DialogResult
        Dim BufferByte() As Byte

        OpenFileDialog1.FileName = String.Empty
        DlgResult = OpenFileDialog1.ShowDialog()
        If DlgResult = DialogResult.OK And OpenFileDialog1.CheckFileExists Then
            FileReader = New IO.FileStream(OpenFileDialog1.FileName, IO.FileMode.Open)

            ReDim BufferByte(FileReader.Length - 1)
            FileReader.Read(BufferByte, 0, FileReader.Length)
            FileReader.Close()

            RichTextBox1.Text = System.Text.ASCIIEncoding.UTF8.GetString(BufferByte)
        End If
    End Sub

 

Variabel FileReader yang merupakan kelas dari FileStream disediakan untuk menangani proses pembacaan stream data pada file yang dibuka. Variabel DlgResult digunakan untuk menampung hasil dialog dari pemilihan file yang akan dibuka. BufferByte digunakan untuk menampung data byte yang terbaca dari file.

Pada tahap awal kita akan menampilkan dialog untuk membuka file dengan perintah :

DlgResult = OpenFileDialog1.ShowDialog()

Hasil dialog akan disimpan di dalam variabel DlgResult, apakah hasil dialog adalah Ok atau Cancel (batal). Pemeriksaan hasil dialog kemudian akan dilakukan menggunakan perintah kondisi if sekaligus memeriksa apakah file yang dipilih oleh pengguna eksis atau tidak.

If DlgResult = DialogResult.OK And OpenFileDialog1.CheckFileExists Then
     ....................
     ....................
End if

Jika kondisi memenuhi (dialog = Ok, File = eksis), maka berikutnya kita akan membuat instance FileStream baru pada variabel FileReader dengan informasi lokasi file dan mode pembukaan file.

FileReader = New IO.FileStream(OpenFileDialog1.FileName, IO.FileMode.Open)

Dikarenakan pada artikel ini kita hanya ingin membaca file, maka mode yang digunakan adalah mode Open. Lokasi file dapat diperoleh dari OpenFileDialog1.Filename (hasil dari pemilihan file dari dialog open file). Tahapan berikutnya adalah menyiapkan penampung (buffer) untuk dapat menampung byte data dari file.

ReDim BufferByte(FileReader.Length - 1)

Variabel BufferByte yang kita sediakan untuk penampung byte data akan kita re-inisialisasi ukurannya berdasarkan panjang byte dari data. Setelah variabel penampung disiapkan, selanjutnya kita akan membaca byte data dari file dan mengisi byte-byte tersebut kedalam variabel BufferByte.

FileReader.Read(BufferByte, 0, FileReader.Length)

Pada kode diatas dapat dilihat Objek FileReader melakukan proses membaca byte data yang kemudian byte data akan dikirimkan ke variabel BufferByte. Pembacaan byte data dimulai dari indeks 0 (awal file) dan jumlah byte yang dibaca adalah sebanyak byte yang tersedia pada file (FileReader.Length). Setelah proses pembacaan byte selesai, selanjutnya kita dapat menampilkan hasil pembacaan byte ke control RichTextBox.

RichTextBox1.Text = System.Text.ASCIIEncoding.UTF8.GetString(BufferByte)

Dikarenakan data yang akan ditampilkan ke dalam richtextbox adalah deretan byte, maka diperlukan proses transformasi menjadi karakter teks menggunakan ASCIIEncoding. Kelas encoding dapat menggunakan kelas lainnya seperti UnicodeEncoding, UTFEncoding, dan lain sebagainya.

Adapun hasil dapat dilihat pada gambar berikut :

Button2 (Clear) digunakan untuk membersihkan atau mengosongkan kembali control RichTextBox menggunakan kode perintah berikut :

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        RichTextBox1.Text = "" 
End Sub

Source code untuk artikel ini dapat anda unduh pada link berikut :

Source Code

 

No comments

Leave your comment

In reply to Some User