Groovy cung cấp một số phương thức trợ giúp khi làm việc với I/O. Nó cung cấp các provides calsses để dễ dàng cung cấp các chức năng sau cho file:
- Đọc file
- Sửa file
- Duyệt file
- Đọc và ghi dữ liệu vào file
Ngoài ra, bạn luôn có thể sử dụng các class của Java thông thường được liệt kê bên dưới cho các tương tác với file I/O:
java.io.File
java.io.InputStream
java.io.OutputStream
java.io.Reader
java.io.Writer
Quản lý tệp trong Groovy
Reading files
Ví dụ sau sẽ xuất ra tất cả các dòng của tệp văn bản trong Groovy. Phương thức eachLine được xây dựng sẵn trong File Class cuả Groovy nhằm mục đích đảm bảo rằng mỗi dòng của tệp văn bản đều được đọc.
import java.io.File
class Example {
static void main(String[] args) {
new File("E:/Example.txt").eachLine {
line -> println "line : $line";
}
}
}
File Class được sử dụng để khởi tạo một object mới lấy tên file làm tham số. Sau đó, nó lấy hàm của eachLine, đặt nó vào một biến có tên là line và in ra tương ứng.
Nếu tệp chứa các dòng sau, chúng sẽ được in.
line : Example1
line : Example2
Reading the Contents of a File as an Entire String
Nếu bạn muốn lấy toàn bộ nội dung của file với path, bạn có thể sử dụng thuộc tính text của file class. Ví dụ sau đây cho thấy điều này có thể được thực hiện như thế nào.
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println file.text
}
}
Nếu tệp chứa các dòng sau, chúng sẽ được in ra
line : Example1
line : Example2
Writing to Files
Nếu bạn muốn ghi vào file, bạn cần sử dụng class writer để xuất văn bản ra file. Ví dụ sau:
import java.io.File
class Example {
static void main(String[] args) {
new File('E:/','Example.txt').withWriter('utf-8') {
writer -> writer.writeLine 'Hello World'
}
}
}
Nếu mở file example.txt, bạn sẽ thấy dòng chữ “Hello World” được in trên file.
Getting the Size of a File
Nếu bạn muốn lấy kích thước của file, bạn có thể sử dụng thuộc tính length của file class để lấy kích thước của tệp
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println "The file ${file.absolutePath} has ${file.length()} bytes"
}
}
Đoạn mã trên sẽ hiển thị kết quả đầu ra sau:
File? false
Directory? True
Creating a Directory
Nếu bạn muốn tạo một thư mục mới, bạn có thể sử dụng hàm mkdir của File Class.
class Example {
static void main(String[] args) {
def file = new File('E:/Directory')
file.mkdir()
}
}
Thư mục E:\Directory sẽ được tạo nếu nó không tồn tại.
Deleting a File
Nếu bạn muốn xóa một tập tin, bạn có thể sử dụng chức năng xóa của lớp File.
class Example {
static void main(String[] args) {
def file = new File('E:/Example.txt')
file.delete()
}
}
Copying files
Groovy cũng cung cấp chức năng sao chép nội dung từ tệp này sang tệp khác.
class Example {
static void main(String[] args) {
def src = new File("E:/Example.txt")
def dst = new File("E:/Example1.txt")
dst << src.text
}
}
Tệp example1.txt sẽ được tạo và tất cả nội dung của tệp example.txt sẽ được sao chép vào tệp này.
Getting Directory Contents
Groovy cũng cung cấp chức năng liệt kê các ổ đĩa và tệp trong một ổ đĩa.
Ví dụ sau đây cho thấy cách hiển thị các ổ đĩa trên máy bằng cách sử dụng hàm listRoots của File Class.
class Example {
static void main(String[] args) {
def rootFiles = new File("test").listRoots()
rootFiles.each {
file -> println file.absolutePath
}
}
}
Tùy thuộc vào ổ đĩa có sẵn trên máy của bạn, kết quả đầu ra có thể khác nhau. Trên một máy tiêu chuẩn, đầu ra sẽ tương tự như sau:
C:\
D:\
Ví dụ sau đây cho thấy cách liệt kê các tệp trong một thư mục cụ thể bằng cách sử dụng hàm eachFile của File Class.
class Example {
static void main(String[] args) {
new File("E:/Temp").eachFile() {
file->println file.getAbsolutePath()
}
}
}
Đầu ra sẽ hiển thị tất cả các tệp trong thư mục E:\Temp
Nếu bạn muốn hiển thị đệ quy tất cả các tệp trong một thư mục và các thư mục con của nó, thì bạn sẽ sử dụng hàm eachFileRecurse của File Class.
class Example {
static void main(String[] args) {
new File("E:/temp").eachFileRecurse() {
file -> println file.getAbsolutePath()
}
}
}
Đầu ra sẽ hiển thị tất cả các tệp trong thư mục E:\Temp và trong các thư mục con của nó nếu chúng tồn tại.
Bài tiếp theo: Bài 8 - Hướng dẫn lập trình groovy: Numbers - Strings - Ranges
Không có nhận xét nào: