Untuk menulis data kedalam file, kita dapat menggunakan metode write() yang didefinisikan didalam kelas file. Sebagai contoh, jika kita ingin membuat file untuk menyimpan data yang dibaca dari keyboard maka kodenya dapat ditulis seperti berikut:
#!/usr/bin/ruby
##########################################################################
# Nama File : file.rb
##########################################################################
NAMA_FILE = 'kontak.txt'
class Kontak
def initialize(nama, nohp)
@nama = nama
@nohp = nohp
end
def simpan()
File.open(NAMA_FILE, 'a') do | f |
f.write("#{@nama}, #{@nohp}\n")
f.close
end
end
end
print "Masukkan jumlah data: "
n = gets.to_i
1.upto(n) do | i |
puts "\nData ke-#{i}"
print "Nama: "
nama = gets.chop
print = "No HP: "
nohp = gets.chop
kontak = Kontak.new(nama, nohp)
kontak.simpan
end
puts "\nData sudah tersimpan didalam file #{NAMA_FILE}."
Hasil program:
Masukkan jumlah data: 4
Data ke-1
Nama: Fika Ridaul Maulayya
No HP: 0857 8585 2224
Data ke-2
Nama: Kurnia Andi Nugroho
No HP: 0857 9967 0987
Data ke-3
Nama: Mahsun Jauhari
No HP: 0857 4455 0000
Data ke-4
Nama: Faisal Mahadi
No HP: 0857 2121 9900
Data sudah tersimpan didalam file kontak.txt.
Eksekusi kode diatas akan menciptakan file baru dengan nama kontak.txt didalam direktori kerja. Isi file tersebut dapat dilihat menggunakan perintah:
$ cat kontak.txt
Selain menggunakan write(), kita juga dapat menggunakan metode syswrite() untuk menulis data kedalam file. Sama seperti write(), metode syswrite() juga didefinisikan didalam kelas file. Dengan demikian kode diatas juga dapat ditulis seperti berikut ini:
#!/usr/bin/ruby
##########################################################################
# Nama File : file.rb
##########################################################################
NAMA_FILE = 'kontak.txt'
class Kontak
def initialize(nama, nohp)
@nama = nama
@nohp = nohp
end
def simpan()
File.open(NAMA_FILE, 'a') do | f |
#menggunakan metode File.syswrite()
f.syswrite("#{@nama}, #{@nohp}\n")
f.close
end
end
end
print "Masukkan jumlah data: "
n = gets.to_i
1.upto(n) do | i |
puts "\nData ke-#{i}"
print "Nama: "
nama = gets.chop
print = "No HP: "
nohp = gets.chop
kontak = Kontak.new(nama, nohp)
kontak.simpan
end
puts "\nData sudah tersimpan didalam file #{NAMA_FILE}."