Operasi File
Operasi File
KONSEP DASAR
Bahasa C mendukung penyimpanan dan pembacaan data dari sebuah file.
File: sembarang sumber untuk penyimpanan/pembacaan data, mencakup keyboard,
layar/monitor, printer, file pada disk, dsb.
Pengaksesan file pada C menggunakan konsep stream. Stream merupakan penghubung
antara programmer dengan file.
Sebuah stream terhubung dengan file melalui operasi open dan terputus dari file melalui
operasi close.
Ada dua tipe stream: text (untuk tipe data karakter) dan biner (untuk sembarang tipe
data).
PERINTAH MEMBUKA FILE DAN MENGHUBUNGKANNYA DENGAN STREAM dengan
fopen (library stdio.h) DAN MENUTUPNYA DENGAN fclose
FILE *fopen(char *nama_file, char *mode)
FILE *fclose(FILE *pointer_file)
Mode merupakan cara pengaksesan file. Berikut daftar mode yang dapat digunakan:
Mode
r
w
a
rb
wb
ab
r+
w+
a+
r+b atau rb+
w+b atau wb+
a+b atau ab+
Arti
Membuka sebuah file teks untuk pembacaan
Membuat sebuah file teks untuk penulisan
Menambahkan data ke sebuah file teks
Membuka sebuah file binary untuk pembacaan
Membuat sebuah file binary untuk penulisan
Menambahkan data ke sebuah file binary
Membuka sebuah file teks untuk pembacaan/penulisan
Membuat sebuah file teks untuk pembacaan/penulisan
Menambahkan data/membuat file teks untuk pembacaan/penulisan
Membuka sebuah file binary untuk pembacaan/penulisan
Membuat sebuah file binary untuk pembacaan/penulisan
Menambahkan data ke file binary untuk pembacaan/penulisan
Jika operasi open berhasil, fopen() mengembalikan sebuah file pointer yang valid.
Jika operasi gagal, maka fopen()mengembalikan sebuah null pointer, sehingga harus
selalu dicek pada saat pembukaan file. Contoh:
FILE *fp;
if((fp=fopen(fileku.txt,r)==NULL) {
printf(Error dalam pembukaan file\n);
exit(1);
}
fclose(fp);
//menutup stream file
Contoh:
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
int i;
int ch;
fp = fopen("foo.abc", "w");//buka file foo.abc untuk ditulisi
for (i=0;i<10;i++) {
//loop untuk meletakkan karakter2
fputc('A',fp);
//menuliskan karakter A
fputc('\n',fp);
//menuliskan pergantian baris
}
fclose(fp);
if((fp = fopen("foo.abc", "r"))==NULL) {
printf("Error reading file...\n");
exit(1);
}
while (ch!=EOF) {
//baca file sampai tanda EOF (End of File)
ch=fgetc(fp); //ambil satu karakter
putchar(ch);
//menampilkan karakter ke layar
}
fclose(fp);
}