File adalah sekumpulan data yang disimpan dalam media penyimpanan luar
seperti harddisk.
Contoh program operasi file :
1. Program membuat direktori file
Untuk membuat sebuah direktori baru, gunakan method mkdirs(
) yang terdapat pada kelas file. Berikut ini, contoh
program yang akan menunjukan hal tersebut :
import java.io.File;
class DemoMembuatDirektori
class DemoMembuatDirektori
{
public static void main(String[] args)
public static void main(String[] args)
{
File f = new File("d:/NewDir/NewSubDir");
f.mkdirs();
}
}
File f = new File("d:/NewDir/NewSubDir");
f.mkdirs();
}
}
2.
Program membuat file baru
Selain menggunakan kelas FileOutputStream maupun FileWriter,
kita juga dapat mengunakan method createNewFile( ) dari
kelas file untuk membuat sebuah file baru di
dalam disk.
Contoh :
import java.io.File;
import java.io.IOException;
class DemoMembuatFileBaru
import java.io.IOException;
class DemoMembuatFileBaru
{
public static void main(String[] args) throws IOException
public static void main(String[] args) throws IOException
{
File f = new File("d:/sample.txt");
f.createNewFile();
}
}
File f = new File("d:/sample.txt");
f.createNewFile();
}
}
3.
Program rename file
Apabila kita ingin merubah nama suatu file yang sebelumnya
sudah ada di dalamdisk, maka kita harus mengunakan menthod renameto(
) yang terdapat dalam kelas file. Berikut ini contoh kode program
yang akan menunjukan hal tersebut :
import java.io.File;
class DemoUbahNamaFile
class DemoUbahNamaFile
{
public static void main(String[] args)
public static void main(String[] args)
{
File f = new File("d:/sample.txt");
f.renameTo(new File("d:/contoh.txt"));
}
}
File f = new File("d:/sample.txt");
f.renameTo(new File("d:/contoh.txt"));
}
}
4.
Program delete file
Untuk menghapus file, kita dapat mengunakan menthod
delete( ) yang terdapat pada kelas file. Method
ini mengembalikan nilai bertipe boolean (true) bila proses
penghapusan danfalse apabila proses gagal. Berikut ini contoh
penggunaan menthod tersebut di dalam program :
import java.io.File;
class DemoHapusFile
class DemoHapusFile
{
public static void main(String[] args)
public static void main(String[] args)
{
File f = new File("d:/contoh.txt");
f.delete();
}
}
File f = new File("d:/contoh.txt");
f.delete();
}
}
Membuat File Text
File text adalah suatu file yang pola penyimpanannya datanya
dalam bentuk karakter. Sehingga kalau suatu variabel bertipe int (2 byte)
dengan isi 10000, maka akan disimpan dalam bentuk karakter 10000 (5 karakter)
sehingga file yang dibuat besarnya 5 byte.
Contoh program untuk membuat file text :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <stdio.h>
#include <conio.h>
#include <String.h>
main()
{
FILE *f;
char st[81]=”";
f=fopen(“strings.dat”,”w”);
if (f!=NULL)
{
do{
printf(“Masukan string : “);gets(st);
fprintf(f,”%s\n”,st);
}while
(strlen(st)>0);
fclose(f);
printf(“File selesai
di buat”);
}
else
{
printf(“File
gagal dibuat”);
}
getch();
return 0;
}
|
Keterangan program :
-
Baris 6 : Perintah FILE *f berarti deklarasi variabel f yang merupakan pointer
ke suatu file .
-
Baris 8 : membuat link / menghubungkan variabel file f dengan file strings.dat
dengan mode operasi adalah w (write).
-
Baris 9 : Jika file sukses di buat (variabel f menunjuk ke suatu file/tidak
NULL) maka program akan mengerjakan perintah baris 11 – 16.
-
Baris 11 dan 14: Perulangan selama string yang dimasukan panjangnya lebih dari
0.
-
Baris 12 : Baca sebuah string, masukan ke variabel st
-
Baris 13 : Tulis string st ke file f, dan kemudian diberikan tanda pindah baris
(\n).
-
Baris 15 : Menutup hubungan/link ke file f.
-
Baris 18 : Jika file tidak bisa dibuat, maka akan menampilkan pesan File gagal
dibuat.
Jika data yang dimasukan ingin disimpan di bagian belakang
file, maka mode yang digunakan adalah mode “a”
Membaca File Text
Mode yang dipakai
dalam membaca data text adalah mode “r”. File yang dibaca bisa berekstensi apa
saja.
Perhatikan perintah
berikut :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
10
21
22
23
24
25
26
|
#include <stdio.h>
#include <conio.h>
#include <String.h>
main()
{
FILE *f;
char st[81]=”";
f=fopen(“strings.dat”,”r”);
if (f!=NULL)
{
clrscr();
while
(fscanf(f,”%s”,st)!=EOF) //(fgets(st,80,f)!=NULL)
{
printf(“%s”,st);
}
fclose(f);
printf(“File sudah
dibaca”);
}
else
{
printf(“File
gagal dibaca”);
}
getch();
return 0;
}
|
Keterangan program :
-
Baris 8 : Buka sebuah file (strings.dat) dalam mode “r” (read).
-
Baris 9 – 18 : jika variabel F tidak NULL (file sukses di buka), maka program
akan mengeksekusi program baris 11 – 17.
-
Baris 12 : Perulangan selama fscanf belum mencapai EOF (end of file). Fscanf
akan mengambil data dari file bertipe string (%s”) disimpan di st. Alternatif
lain adalah menggunakan perintah fgets.
-
Baris 14 : Menuliskan data yang telah dibaca.
Membuat File Biner
File biner adalah suatu file yang pola penyimpanannya adalah
dengan menuliskan data secara biner. Sebagai contoh, jika data yang disimpan ke
file tersebut bertipe int (2 byte) dengan isi variabel 10000, maka akan
disimpan sebesar 2 byte dengan isi : 2710h. Tipe jenis ini
sangat cocok untuk penyimpanan data dalam bentuk struct. Pembacaan file biner
dilakukan perblok.
Contoh program :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <stdio.h>
#include <conio.h>
main()
{
FILE *f;
int i;
f=fopen(“dataint.abc”,”wb”);
if(f!=NULL)
{
do{
printf(“Masukan angka : “);scanf(“%d”,&i);
if(i!=0)
fwrite(&i,sizeof(int),1,f);
}while (i!=0);
fclose(f);
printf(“File telah selesai
dibuat”);
}
else
{
printf(“Data tidak
bisa dibuat”);
}
getch();
return 0;
}
|
Keterangan program :
-
Baris 7 : Buka file dalam mode “wb” (write binary).
-
Baris 8 – 17 : Jika file bisa dibuat, maka akan melakukan perintah-perintah di
baris 10 – 16.
-
Baris 10 – 14 : Perulangan selama data yang dibaca dari keyboard tidak nol.
-
Baris 11 : Baca suatu integer
-
Baris 12-13 : Jika data tidak nol maka disimpan dalam file f sebanyak 1 data
sebesar 2 byte (sizeof(int)) yang ada di alamat &i.
-
Baris 15 : Menutup file f.
Membaca File Biner
Untuk membaca file biner, mode operasi filenya adalah “rb”
(read binary). Pembacaan data untuk tipe biner dilakukan perblok, sehingga kita
harus tahu besar data yang akan dibaca.
Perhatikan program di bawah ini :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <stdio.h>
#include <conio.h>
main()
{
FILE *f;
int i;
f=fopen(“dataint.abc”,”rb”);
if(f!=NULL)
{
while(fread(&i,sizeof(int),1,f)==1)
printf(“angka : %i\n”,i);
fclose(f);
printf(“File telah selesai
dibaca”);
}
else
{
printf(“Data tidak
bisa dibaca”);
}
getch();
return 0;
}
|
Keterangan program :
-
Baris 7 : Buka file dataint.abc dalam mode rb (read binary).
-
Baris 8 – 13 : Jika file bisa dibuka, maka akan mengeksekusi perintah baris 10
– 13
-
Baris 10 : Lakukan pembacaan data fread, simpan data ke alamat I
(&i), sebesar 2 byte (sizeof(int)), sebanyak 1 buah integer, dari
file f. Pembacaan ini diulang selama fread == 1. fread menghasilkan nilai
banyak data yang dibaca.
-
Baris 11 : Menuliskan data hasil pembacaan (i) ke layar
-
Baris 12 : Menutup file f.
Membaca File Biner Secara Acak
Ada kalanya kita ingin mengambil data dari posisi tengah
file. Untuk itu, ada suatu fungsi fseek, yang gunanya untuk memindahkan kursor
file ke posisi tertentu.
Posisi awal pencarian ada 3 jenis yaitu SEEK_SET (dari awal
file), SEEK_CUR (dari posisi sekarang), SEEK_END (dari akhir file).
Contoh perintah :
-
fseek(f,10,SEEK_SET), pindahkan pointer file ke posisi (byte) ke-10 dari awal
file.
-
fseek(f,5,SEEK_CUR), pindahkan pointer file 5 byte dari posisi pointer
sekarang.
-
fseek(f,1,SEEK_END), pindahkan pointer posisi paling akhir (1 byte sebelum
EOF).
Jadi kalau kita mempunyai file biner yang digunakan untuk
menyimpan data int, maka kalau kita ingin mengambil data ke-5 perintah fseeknya
adalah fseek(f,5*sizeof(int),SEEK_SET).
Contoh dibawah ini akan menampilkan data dari posisi 3 dan
seterusnya.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <stdio.h>
#include <conio.h>
main()
{
FILE *f;
int i;
f=fopen(“dataint.abc”,”rb”);
if(f!=NULL)
{
fseek(f,3*sizeof(int),SEEK_SET);
while(fread(&i,sizeof(int),1,f)==1)
printf(“angka : %i\n”,i);
fclose(f);
printf(“File telah selesai
dibaca”);
}
else
{
printf(“Data tidak
bisa dibaca”);
}
getch();
return 0;
}
|