Páginas

Kamis, 15 Maret 2012

Pembacaan File dengan System.IO.Stream

Artikel ini mengenai pembacaan file menggunakan kelas System.IO.Stream (selanjutnya disebut dengan Stream saja). Sebenarnya ada banyak cara untuk melakukan pembacaan file selain menggunakan kelas tersebut, misalnya menggunakan kelas System.IO.FileStream, System.IO.BinaryWriter, atau System.IO.BinaryReader. Meskipun harus teliti dalam pembacaan per-byte (atau per-kumpulan-byte), menurut pengalaman saya dan informasi sana-sini, pembacaan file dengan menggunakan kelas Stream ini sangat cepat karena langsung mengakses byte-byte pada offset tertentu pada file tanpa memboroskan memori. Mari kita langsung saja pada prakteknya berikut ini.

  • Untuk membuka file untuk melakukan read atau write pada suatu file:
    Stream stream = File.Open(“filename.txt”, FileMode.Open);
  • Untuk membuat file baru (replacing jika file sudah ada) untuk melakukan write pada suatu file:
    Stream stream = File.Open(“filename.txt”,FileMode.Create);
  • Untuk memindahkan offset pembacaan/penulisan:
    • stream.Seek(1, SeekOrigin.Begin);
      >>>> Offset terletak pada byte kedua stream, pencarian dari awal stream
    • stream.Seek(-1, SeekOrigin.End);
      >>>> Offset terletak pada byte terakhir stream, pencarian dari akhir stream
    • stream.Seek(-2, SeekOrigin.Current);
      >>>> Offset digeser 2 byte ke kiri offset
    • stream.Seek(3, SeekOrigin.Current);
      >>>> Offset digeser 3 byte ke kanan offset
  • Untuk melakukan read:
    • int x = stream.ReadByte();
      >>>> Pembacaan satu byte pada posisi offset sekarang.
    • byte[] temp = new byte[8];
      stream.Read(temp, 0, 8);
      >>>> Pembacaan delapan byte pada posisi offset sekarang dan disimpan dalam array of byte “temp” pada indeks ke-0 pada array tersebut.
  • Untuk melakukan write:
    • byte b = 5;
      stream.WriteByte(b);
      >>>> Penulisan byte 5 pada posisi offset sekarang.
    • byte[] temp = new byte[] {5, 7, 9};
      stream.Write(temp, 0, 3);
      >>>> Penulisan array of byte “temp” sebanyak tiga byte pada posisi offset sekarang.
  • Setelah selesai, file ditutup dengan cara:
    stream.Close();
Supaya pemrosesan lebih cepat, sebaiknya hindari pemakaian operasi seek yang terlalu sering dan lakukan pembacaan atau penulisan sekaligus beberapa byte.

sumber: http://students.netindonesia.net/blogs/dito_adiwidya/archive/2011/06/21/pembacaan-file-dengan-system-io-stream.aspx

Tidak ada komentar:

Posting Komentar