Pemrograman Komputer - File I / O

File Komputer

File komputer digunakan untuk menyimpan data dalam format digital seperti teks biasa, data gambar, atau konten lainnya. File komputer dapat diatur di dalam direktori yang berbeda. File digunakan untuk menyimpan data digital, sedangkan direktori digunakan untuk menyimpan file.

File komputer dapat dianggap sebagai mitra digital dari dokumen kertas. Saat memprogram, Anda menyimpan kode sumber dalam file teks dengan ekstensi berbeda, misalnya, file pemrograman C diakhiri dengan ekstensi.c, File pemrograman Java dengan .java, dan file Python dengan .py.

Masukan / Keluaran File

Biasanya, Anda membuat file menggunakan editor teks seperti notepad, MS Word, MS Excel atau MS Powerpoint, dll. Namun, sering kali kita perlu membuat file menggunakan program komputer juga. Kita bisa memodifikasi file yang sudah ada menggunakan program komputer.

File input artinya data yang ditulis menjadi file dan output file berarti data yang dibaca dari file. Sebenarnya istilah input dan output lebih berkaitan dengan input dan output layar. Saat kami menampilkan hasil di layar, itu disebut output. Demikian pula, jika kita memberikan beberapa masukan ke program kita dari command prompt, maka itu disebut masukan.

Untuk saat ini, cukup diingat bahwa menulis ke dalam file adalah input file dan membaca sesuatu dari file adalah output file.

Mode Operasi File

Sebelum kita mulai bekerja dengan file apapun menggunakan program komputer, kita perlu membuat file baru jika tidak ada atau membuka file yang sudah ada. Dalam kedua kasus tersebut, kita dapat membuka file dalam mode berikut -

  • Read-Only Mode- Jika Anda hanya akan membaca file yang sudah ada dan tidak ingin menulis konten lagi di file tersebut, maka Anda akan membuka file tersebut dalam mode hanya-baca. Hampir semua bahasa pemrograman menyediakan sintaks untuk membuka file dalam mode read-only.

  • Write-Only Mode- Jika Anda akan menulis ke file yang sudah ada atau file yang baru dibuat tetapi Anda tidak ingin membaca konten tertulis apa pun dari file itu, maka Anda akan membuka file dalam mode hanya-tulis. Semua bahasa pemrograman menyediakan sintaks untuk membuka file dalam mode hanya tulis.

  • Read & Write Mode - Jika Anda akan membaca dan menulis ke file yang sama, maka Anda akan membuka file dalam mode baca & tulis.

  • Append Mode- Saat Anda membuka file untuk ditulis, ini memungkinkan Anda untuk mulai menulis dari awal file; bagaimanapun itu akan menimpa konten yang ada, jika ada. Misalkan kita tidak ingin menimpa konten yang sudah ada, maka kita membuka file tersebut dalam mode append. Mode Tambah pada akhirnya adalah mode tulis, yang memungkinkan konten ditambahkan di akhir file. Hampir semua bahasa pemrograman menyediakan sintaks untuk membuka file dalam mode append.

Di bagian berikut, kita akan belajar cara membuka file baru, cara menulis ke dalamnya, dan nanti, cara membaca dan menambahkan lebih banyak konten ke dalam file yang sama.

Membuka File

Anda dapat menggunakan fopen()berfungsi untuk membuat file baru atau membuka file yang sudah ada. Panggilan ini akan menginisialisasi objek tipeFILE, yang berisi semua informasi yang diperlukan untuk mengontrol aliran. Berikut adalah prototipe, yaitu tanda tangan dari pemanggilan fungsi ini -

FILE *fopen( const char * filename, const char * mode );

Sini, filename adalah string literal, yang akan Anda gunakan untuk memberi nama file dan akses Anda mode dapat memiliki salah satu dari nilai berikut -

Sr Tidak Mode & Deskripsi
1

r

Membuka file teks yang ada untuk tujuan membaca.

2

w

Membuka file teks untuk menulis. Jika tidak ada, maka file baru dibuat. Di sini, program Anda akan mulai menulis konten dari awal file.

3

a

Membuka file teks untuk menulis dalam mode appending. Jika tidak ada, maka file baru dibuat. Di sini, program Anda akan mulai menambahkan konten di konten file yang sudah ada.

4

r+

Membuka file teks untuk membaca dan menulis keduanya.

5

w+

Membuka file teks untuk membaca dan menulis. Ini pertama kali memotong file ke panjang nol, jika ada; jika tidak membuat file jika tidak ada.

6

a+

Membuka file teks untuk membaca dan menulis. Ini membuat file, jika tidak ada. Pembacaan akan dimulai dari awal, tetapi tulisan hanya dapat ditambahkan.

Menutup File

Untuk menutup file, gunakan fclose( )fungsi. Prototipe dari fungsi ini adalah -

int fclose( FILE *fp );

Itu fclose( ) fungsi mengembalikan nol pada keberhasilan, atau EOF, karakter khusus, jika ada kesalahan dalam menutup file. Fungsi ini sebenarnya membuang semua data yang masih tertunda di buffer ke file, menutup file, dan melepaskan memori yang digunakan untuk file tersebut. EOF adalah konstanta yang ditentukan dalam file headerstdio.h.

Ada berbagai fungsi yang disediakan oleh library standar C untuk membaca dan menulis file karakter demi karakter atau dalam bentuk string dengan panjang tetap. Mari kita lihat beberapa di antaranya di bagian selanjutnya.

Menulis File

Diberikan di bawah ini adalah fungsi paling sederhana untuk menulis karakter individu ke aliran -

int fputc( int c, FILE *fp );

Fungsinya fputc() menulis nilai karakter dari argumen c ke aliran keluaran yang dirujuk oleh fp. Ini mengembalikan karakter tertulis yang ditulis pada kesuksesan, jika tidakEOFjika ada kesalahan. Anda dapat menggunakan fungsi berikut untuk menulis string yang diakhiri dengan null ke aliran -

int fputs( const char *s, FILE *fp );

Fungsinya fputs() menulis string ske dalam file yang direferensikan oleh fp. Ini mengembalikan nilai non-negatif pada kesuksesan, jika tidakEOFdikembalikan jika terjadi kesalahan. Anda juga dapat menggunakan fungsi tersebutint fprintf(FILE *fp,const char *format, ...)untuk menulis string ke dalam file. Coba contoh berikut -

#include <stdio.h>

int main() {
   FILE *fp;

   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\n");
   fputs("This is testing for fputs...\n", fp);
   fclose(fp);
}

Ketika kode di atas dikompilasi dan dijalankan, itu membuat file baru test.txt di /tmpdirektori dan menulis dua baris menggunakan dua fungsi yang berbeda. Mari kita baca file ini di bagian selanjutnya.

Membaca File

Diberikan di bawah ini adalah fungsi paling sederhana untuk membaca file teks karakter demi karakter -

int fgetc( FILE * fp );

Itu fgetc() fungsi membaca karakter dari file input yang direferensikan oleh fp. Nilai yang dikembalikan adalah karakter yang dibaca; atau jika terjadi kesalahan, itu akan kembaliEOF. Fungsi berikut memungkinkan Anda membaca string dari sungai -

char *fgets( char *buf, int n, FILE *fp );

Fungsinya fgets() membaca hingga n - 1 karakter dari aliran input yang dirujuk oleh fp. Ini menyalin string baca ke bufferbuf, menambahkan null karakter untuk mengakhiri string.

Jika fungsi ini menemukan karakter baris baru '\ n' atau EOF sebelum mereka membaca jumlah karakter maksimum, maka fungsi ini hanya mengembalikan karakter yang dibaca sampai titik itu termasuk karakter baris baru. Anda juga bisa menggunakanint fscanf(FILE *fp, const char *format, ...) untuk membaca string dari file, tetapi berhenti membaca setelah menemukan karakter spasi pertama.

#include <stdio.h>

main() {

   FILE *fp;
   char buff[255];

   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1 : %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );
   
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);
}

Ketika kode di atas dikompilasi dan dijalankan, ia membaca file yang dibuat di bagian sebelumnya dan menghasilkan hasil sebagai berikut -

1 : This
2 : is testing for fprintf...

3 : This is testing for fputs...

Mari kita analisis apa yang terjadi di sini. Pertama,fscanf() metode membaca Thiskarena setelah itu, ada ruang. Panggilan kedua adalah untukfgets(), yang membaca baris yang tersisa hingga menemukan akhir baris. Akhirnya, panggilan terakhirfgets() membaca baris kedua sepenuhnya.

File I / O di Java

Java menyediakan serangkaian fungsi yang lebih kaya untuk menangani File I / O. Untuk lebih lanjut tentang topik ini, kami menyarankan Anda untuk memeriksa Tutorial Java kami.

Di sini, kita akan melihat program Java sederhana, yang setara dengan program C yang dijelaskan di atas. Program ini akan membuka file teks, menulis beberapa baris teks ke dalamnya, dan menutup file. Akhirnya, file yang sama dibuka dan kemudian dibaca dari file yang sudah dibuat. Anda dapat mencoba menjalankan program berikut untuk melihat hasilnya -

import java.io.*;

public class DemoJava {
   public static void main(String []args) throws IOException {
      File file = new File("/tmp/java.txt");
      
      // Create a File
      file.createNewFile();
      
      //  Creates a FileWriter Object using file object
      FileWriter writer = new FileWriter(file); 
      
      // Writes the content to the file
      writer.write("This is testing for Java write...\n");
      writer.write("This is second line...\n");
      
      // Flush the memory and close the file
      writer.flush();
      writer.close();
      
      // Creates a FileReader Object
      FileReader reader = new FileReader(file); 
      char [] a = new char[100];
      
      // Read file content in the array
      reader.read(a);
      System.out.println( a );
      
      // Close the file
      reader.close();
   }
}

Ketika program di atas dijalankan, menghasilkan hasil sebagai berikut -

This is testing for Java write...
This is second line...

File I / O dengan Python

Program berikut menunjukkan fungsionalitas yang sama untuk membuka file baru, menulis beberapa konten ke dalamnya, dan terakhir, membaca file yang sama -

# Create a new file
fo = open("/tmp/python.txt", "w")

# Writes the content to the file
fo.write( "This is testing for Python write...\n");
fo.write( "This is second line...\n");

# Close the file
fo.close()

# Open existing file
fo = open("/tmp/python.txt", "r")

# Read file content in a variable
str = fo.read(100);
print str

# Close opened file
fo.close()

Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -

This is testing for Python write...
This is second line...