Bài 7 - Hướng dẫn lập trình groovy: Groovy File I/0

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

 

groovy_file

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

Bài 7 - Hướng dẫn lập trình groovy: Groovy File I/0 Bài 7 - Hướng dẫn lập trình groovy: Groovy File I/0 Reviewed by David on tháng 10 01, 2024 Rating: 5

Không có nhận xét nào:

Được tạo bởi Blogger.