Mô-đun FileHandle trong Perl

Mo Dun Filehandle Trong Perl



Có nhiều cách tồn tại trong Perl để tạo và truy cập các tệp. Một tệp có thể được mở để đọc, ghi hoặc cập nhật trong Perl bằng trình xử lý tệp. Trình xử lý tệp có thể được sử dụng trong phương thức open() ở định dạng lập trình có cấu trúc hoặc định dạng lập trình hướng đối tượng. Mô-đun FileHandle có thể được sử dụng trong Perl để khai báo trình xử lý tệp như một đối tượng và sử dụng đối tượng này để mở tệp nhằm tạo hoặc truy cập bằng các thuộc tính và phương thức khác nhau của lớp “FileHandle”. Việc sử dụng một số phương pháp phổ biến của mô-đun FileHandle và các phương pháp sử dụng mô-đun FileHandle để làm việc với tệp trong Perl được trình bày trong hướng dẫn này.

Một số phương pháp hữu ích của FileHandle

Một số phương thức thường được sử dụng của mô-đun FileHandle như sau:

Phương pháp Mục đích
kể Nó được sử dụng để đếm kích thước của tệp theo byte.
getc Nó được sử dụng để đọc từng ký tự của nội dung tập tin.
tìm kiếm Nó được sử dụng để di chuyển con trỏ tập tin đến một vị trí cụ thể.
ôi Nó chỉ ra sự kết thúc của tập tin.
đóng Nó được sử dụng để đóng trình xử lý tệp được xác định trước đó.

Ví dụ về Perl FileHandle

Các cách sử dụng khác nhau của mô-đun FileHandle được trình bày trong phần hướng dẫn này bằng nhiều ví dụ.







Ví dụ 1: Tạo một tệp mới

Tạo một tệp Perl với tập lệnh sau để tạo một tệp mới bằng mô-đun FileHandle. Tên tệp được lấy từ người dùng và kiểm tra xem nó có tồn tại hay không. Nếu tệp không tồn tại, tệp sẽ được mở để ghi bằng cách tạo một đối tượng thuộc lớp “FileHandle” sau khi đợi 1 giây.



#!/usr/bin/Perl

Sử dụng nghiêm ngặt ;
sử dụng cảnh báo ;
sử dụng 5.34.0 ;
sử dụng FileHandle ;

#Lấy tên file từ người dùng để tạo
in 'Nhập tên tập tin:' ;
$ f của tôi = <>;
nhai ( $f ) ;

#Kiểm tra xem file đã tồn tại hay chưa
nếu như ( -e$f )
{
#In thông báo nếu tệp tồn tại
nói 'Tập tin đã tồn tại.' ;
}

khác

{
#Tạo đối tượng xử lý tập tin
$FileHandler của tôi = FileHandle- > mới ;
nói 'Đang ghi vào tập tin...' ;
#Đợi 1 giây
ngủ ( 1 ) ;

#Mở file để viết
nếu như ( $FileHandler- > mở ( '> $f' ) )
{
#Viết một dòng văn bản vào tập tin
in $FileHandler 'Đó là một tin nhắn thử nghiệm. \N Đó là dòng thứ hai. \N ' ;
#Đóng trình xử lý tệp
$FileHandler- > đóng ;
}

}

Đầu ra:



Theo kết quả đầu ra, tệp “test.txt” không tồn tại trước đó và tệp này được tạo bằng hai dòng văn bản. Sau đó, lệnh “cat” được thực thi để kiểm tra xem file được tạo thành công với nội dung hay chưa:





  p1-1

Tập lệnh được thực thi lại với cùng giá trị đầu vào và thông báo “Tệp đã tồn tại” được in ở đây vì tệp “test.txt” đã được tạo trước đó.



  p1-2

Ví dụ 2: Đọc nội dung của File

Tạo một tệp Perl với tập lệnh sau để đọc nội dung của tệp bằng cách sử dụng lớp “FileHandle” nếu tệp tồn tại. Tên tập tin được lấy từ người dùng.

#!/usr/bin/perl

Sử dụng nghiêm ngặt ;
sử dụng cảnh báo ;
sử dụng 5.34.0 ;
sử dụng FileHandle ;

#Lấy tên file từ người dùng để tạo
$ f của tôi = <>;
$ f của tôi = ;
nhai ( $f ) ;

#Kiểm tra xem file đã tồn tại hay chưa
nếu như ( -e$f )
{
#Mở file để đọc
$FileHandler của tôi = FileHandle- > mới ( ' <$f' ) ;
#In nội dung tập tin
in < $FileHandler >;
#Đóng trình xử lý tệp
đóng $FileHandler ;
}

Đầu ra:

Nội dung của file “test.txt” được in ở đầu ra vì nó tồn tại ở vị trí hiện tại:

  p2

Ví dụ 3: Nối nội dung vào tệp

Tạo một tệp Perl với tập lệnh sau để nối nội dung vào một tệp không trống và in kích thước của tệp theo byte. Tên tập tin được lấy từ người dùng. Nếu tệp tồn tại và chứa dữ liệu, một dòng văn bản sẽ được thêm vào cuối tệp. Nếu không, một tin nhắn sẽ được in.

#!/usr/bin/perl

Sử dụng nghiêm ngặt ;
sử dụng cảnh báo ;
sử dụng 5.34.0 ;
sử dụng FileHandle ;

#Lấy tên file từ người dùng để tạo
in 'Nhập tên tập tin:' ;
$ f của tôi = <>;
nhai ( $f ) ;

#Kiểm tra xem tệp đã tồn tại và có trống hay không
nếu như ( -s$f )
{


$FileHandler của tôi = FileHandle- > mới ( ' >> $f' ) ;
#In kích thước tệp
in 'Kích thước của tập tin là' . $FileHandler- > kể. ' byte. \N ' ;
nói 'Đang thêm nội dung vào tệp...' ;
#Đợi 1 giây
ngủ ( 1 ) ;

#Viết nội dung ở cuối file
in $FileHandler 'Đó là một dòng mới. \N ' ;
#Đóng trình xử lý tệp
$FileHandler- > đóng ;
}
khác
{
nói 'Tập tin không tồn tại.' ;
}

Đầu ra:

Theo kết quả đầu ra, một dòng mới sẽ được thêm vào tệp “test.txt” và kích thước của tệp là 45 byte. Sau đó, lệnh “cat” được thực thi để kiểm tra xem nội dung đã được thêm đúng vào tệp hay chưa:

  p3-1

Phần kết luận


Mô-đun FileHandle là một trong các tùy chọn của Perl để đọc, ghi hoặc nối thêm các tệp. Ba cách sử dụng khác nhau của mô-đun này được trình bày trong hướng dẫn này bằng các ví dụ đơn giản.