Groovy - File I / O
Groovy menyediakan sejumlah metode pembantu saat bekerja dengan I / O. Groovy menyediakan kelas yang lebih mudah untuk menyediakan fungsi berikut untuk file.
- Membaca file
- Menulis ke file
- Melintasi pohon file
- Membaca dan menulis objek data ke file
Selain itu, Anda selalu dapat menggunakan kelas Java normal yang tercantum di bawah ini untuk operasi I / O File.
- java.io.File
- java.io.InputStream
- java.io.OutputStream
- java.io.Reader
- java.io.Writer
Membaca file
Contoh berikut akan menampilkan semua baris file teks di Groovy. MetodeeachLine ada di dalam kelas File di Groovy untuk memastikan bahwa setiap baris file teks dibaca.
import java.io.File
class Example {
static void main(String[] args) {
new File("E:/Example.txt").eachLine {
line -> println "line : $line";
}
}
}
Kelas File digunakan untuk membuat contoh objek baru yang menggunakan nama file sebagai parameter. Kemudian mengambil fungsi eachLine, meletakkannya ke variabel yang disebut line dan mencetaknya sesuai.
Jika file berisi baris berikut, baris tersebut akan dicetak.
line : Example1
line : Example2
Membaca Isi File sebagai Seluruh String
Jika Anda ingin mendapatkan seluruh konten file sebagai string, Anda dapat menggunakan properti teks dari kelas file. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println file.text
}
}
Jika file berisi baris berikut, baris tersebut akan dicetak.
line : Example1
line : Example2
Menulis ke File
Jika Anda ingin menulis ke file, Anda perlu menggunakan kelas penulis untuk mengeluarkan teks ke file. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
import java.io.File
class Example {
static void main(String[] args) {
new File('E:/','Example.txt').withWriter('utf-8') {
writer -> writer.writeLine 'Hello World'
}
}
}
Jika Anda membuka file Example.txt, Anda akan melihat kata-kata “Hello World” tercetak di file tersebut.
Mendapatkan Ukuran File
Jika Anda ingin mendapatkan ukuran file, Anda dapat menggunakan properti length dari file class untuk mendapatkan ukuran file. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println "The file ${file.absolutePath} has ${file.length()} bytes"
}
}
Kode di atas akan menunjukkan ukuran file dalam byte.
Menguji apakah File adalah Direktori
Jika Anda ingin melihat apakah jalur adalah file atau direktori, Anda dapat menggunakan isFile dan isDirectoryopsi kelas File. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
def file = new File('E:/')
println "File? ${file.isFile()}"
println "Directory? ${file.isDirectory()}"
}
}
Kode di atas akan menunjukkan output berikut -
File? false
Directory? True
Membuat Direktori
Jika Anda ingin membuat direktori baru, Anda dapat menggunakan mkdirfungsi dari kelas File. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
def file = new File('E:/Directory')
file.mkdir()
}
}
Direktori E: \ Directory akan dibuat jika tidak ada.
Menghapus File
Jika Anda ingin menghapus file, Anda dapat menggunakan fungsi delete dari kelas File. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
def file = new File('E:/Example.txt')
file.delete()
}
}
File akan dihapus jika ada.
Menyalin file
Groovy juga menyediakan fungsionalitas untuk menyalin konten dari satu file ke file lainnya. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
def src = new File("E:/Example.txt")
def dst = new File("E:/Example1.txt")
dst << src.text
}
}
File Example1.txt akan dibuat dan semua konten file Example.txt akan disalin ke file ini.
Mendapatkan Isi Direktori
Groovy juga menyediakan fungsionalitas untuk membuat daftar drive dan file di drive.
Contoh berikut menunjukkan bagaimana drive pada mesin dapat ditampilkan dengan menggunakan listRoots fungsi dari kelas File.
class Example {
static void main(String[] args) {
def rootFiles = new File("test").listRoots()
rootFiles.each {
file -> println file.absolutePath
}
}
}
Bergantung pada drive yang tersedia di mesin Anda, outputnya dapat bervariasi. Pada mesin standar, hasilnya akan serupa dengan yang berikut -
C:\
D:\
Contoh berikut ini memperlihatkan cara membuat daftar file di direktori tertentu dengan menggunakan eachFile fungsi dari kelas File.
class Example {
static void main(String[] args) {
new File("E:/Temp").eachFile() {
file->println file.getAbsolutePath()
}
}
}
Outputnya akan menampilkan semua file di direktori E: \ Temp
Jika Anda ingin menampilkan semua file dalam direktori dan subdirektorinya secara rekursif, maka Anda akan menggunakan eachFileRecursefungsi dari kelas File. Contoh berikut menunjukkan bagaimana ini bisa dilakukan.
class Example {
static void main(String[] args) {
new File("E:/temp").eachFileRecurse() {
file -> println file.getAbsolutePath()
}
}
}
Keluarannya akan menampilkan semua file di direktori E: \ Temp dan di subdirektorinya jika ada.