Jawaban sederhana: Karena didefinisikan seperti itu.
Jawaban yang lebih panjang: Ini didefinisikan seperti itu karena beberapa operasi secara konsep lebih sederhana:
- Jika file berisi 20 huruf "A", dan Anda menghapus semua "A", maka file akan menjadi lebih pendek 20 byte. Operasi yang sama pada file yang hanya terdiri dari "AAAAAAAAAAAAAAAAAAAAA" harus berurusan dengan kasus khusus dari file yang hilang.
- Secara lebih praktis, menghapus baris terakhir dari file teks perlu dibuat khusus.
- Editor teks yang secara teratur membuat cadangan akan memerlukan kode kasus khusus untuk menangani situasi di mana pengguna mungkin menghapus baris terakhir, pergi makan siang, lalu kembali dan menambahkan baris lain. Komplikasi lebih lanjut muncul jika beberapa pengguna lain membuat file dengan nama itu untuk sementara waktu.
Anda dapat melakukan lebih banyak hal: * File log kesalahan cenderung dibuat kosong, harus diisi jika dan hanya jika terjadi kesalahan. * Untuk mengetahui berapa banyak kesalahan yang terjadi, Anda menghitung jumlah baris dalam file log. Jika file log kosong, jumlah kesalahan adalah nol, yang masuk akal. * Terkadang Anda melihat file di mana semua teks yang relevan dalam nama file, misalnya this-is-the-logging-directory
. Ini mencegah administrator yang terlalu bersemangat menghapus direktori kosong setelah instalasi, dan itu juga mencegah bug di mana suatu program atau pengguna secara tidak sengaja membuat file di mana program ingin melihat direktori nanti. The git
Program (dan lain-lain) cenderung mengabaikan direktori kosong, dan jika proyek / administrator / user ingin memiliki catatan bahwa direktori ada meskipun tidak memiliki konten yang bermanfaat (belum), Anda mungkin melihat file kosong bernamaempty
atau empty.directory
.
Tidak ada operasi yang menjadi lebih rumit:
- File gabungan: ini hanyalah larangan dengan file kosong.
- Mencari string dalam file: ini dicakup oleh kasus standar "jika file lebih pendek dari istilah pencarian, itu tidak dapat berisi istilah pencarian".
- Membaca dari file: program harus berurusan dengan memukul ujung file sebelum mereka mendapatkan apa yang mereka harapkan, jadi sekali lagi kasus file dengan panjang nol tidak melibatkan pemikiran ekstra untuk programmer: ia hanya akan mencapai akhir -file dari awal.
Dalam hal file, aspek "ada file yang direkam di suatu tempat" (inode dan / atau nama file) muncul di atas pertimbangan di atas, tetapi sistem file tidak akan melakukan itu jika file kosong tidak berguna.
Secara umum, semua alasan di atas kecuali yang terkait dengan nama file berlaku untuk urutan. Terutama pada string, yang merupakan urutan karakter: String nol-panjang adalah hal biasa dalam program. String biasanya tidak diizinkan di tingkat pengguna jika tidak masuk akal: nama file adalah string, dan sebagian besar sistem file tidak mengizinkan string kosong sebagai nama file; secara internal, saat membuat nama file dari fragmen, program mungkin memiliki string kosong sebagai salah satu fragmen.