2013-12-12 11 views
20

Lớp BasicFileAttributes, để kiểm tra các thuộc tính của tệp trong hệ thống tệp, có phương thức isRegularFile(). Thật không may, mô tả Javadoc khá thiếu:"Tệp thông thường" trong Java là gì?

Cho biết tệp có phải là tệp thông thường có nội dung mờ hay không.

Điều này có nghĩa là gì? Chính xác thì một tệp thông thường có nội dung mờ là gì? Tôi có thể nói từ các phương pháp khác trong lớp rằng nó không phải là một thư mục hoặc liên kết tượng trưng, ​​vì vậy tôi nghiêng để nghĩ rằng đó là tất cả mọi thứ khác. Tuy nhiên, dường như có một số loại "tập tin bất thường" vì một phương thức tồn tại được gọi là isOther(), trả về true nếu nó không phải là thư mục, liên kết tượng trưng hoặc "tệp thông thường".

Vậy tệp chính xác trong Java là gì?

+0

Tìm thấy [câu hỏi này] (http://stackoverflow.com/questions/16505508/what-opaque-content-exactly-mean) tập trung nhiều hơn vào phần nội dung mờ. Dường như không trả lời toàn bộ câu hỏi của bạn. – thegrinner

+2

Trên hệ thống * nix cũng có các nút thiết bị, năm mươi và ổ cắm cục bộ trong hệ thống tệp. Có lẽ đó là loại "khác" nghĩa là gì? – FatalError

+0

@FatalError, do đó, thuật ngữ này chỉ có liên quan trên các hệ thống * nix, nhưng không phải trên các hệ thống như Windows? – Thunderforge

Trả lời

11

Ví dụ trong UNIX, tệp thông thường là tệp không đặc biệt theo một cách nào đó. Các tệp đặc biệt bao gồm các liên kết và thư mục tượng trưng. Một tệp thông thường là một chuỗi các byte được lưu trữ vĩnh viễn trong một hệ thống tệp.

đọc câu trả lời này @ UNIX & Linux stackexchange: What is a regular file?

tôi tìm rm -i là một bí danh, có thể là rm -i. Phần "thông thường" không có nghĩa là bất cứ điều gì đặc biệt, nó chỉ có nghĩa là nó không phải là một đường ống, thiết bị, ổ cắm hoặc bất cứ thứ gì "đặc biệt" khác.

có nghĩa là tệp không phải là một liên kết tượng trưng, ​​đường ống, rand, null, cpu, v.v. Có lẽ bạn đã nghe triết lý Linux mọi thứ đều là văn bản. Điều này là không đúng nghĩa, nhưng nó cho thấy một bối cảnh hoạt động chi phối nơi công cụ xử lý chuỗi có thể được áp dụng cho các phần tử hệ thống tập tin trực tiếp. Trong trường hợp này, nó có nghĩa là trong một thời trang nhiều hơn. Để xem bước phát hiện cách ly, hãy thử tệp lệnh, như trong tệp /etc/passwd hoặc tệp/dev/null.

+1

Thuật ngữ này cũng áp dụng cho Windows và các nền tảng khác không? – Thunderforge

+0

có, áp dụng tất cả các nền tảng hỗ trợ java. – Jorgesys

+1

Khi liên quan đến Windows, tôi tin rằng hệ thống tệp NTFS thực sự hỗ trợ dạng liên kết tượng trưng của riêng nó, bạn chỉ cần một công cụ cụ thể để có thể tạo chúng. – Gimby

4

Từ Files Reference - AIX IBM

Một tập tin là một tập hợp các dữ liệu có thể được đọc từ hay ghi vào. Một tệp có thể là chương trình bạn tạo, văn bản bạn viết, dữ liệu bạn có được hoặc thiết bị bạn sử dụng. Các lệnh, máy in, thiết bị đầu cuối và các chương trình ứng dụng đều được lưu trữ trong các tệp. Điều này cho phép người dùng truy cập các yếu tố đa dạng của hệ thống một cách thống nhất và mang đến cho hệ điều hành sự linh hoạt tuyệt vời. Không có định dạng nào được ngụ ý khi tệp được tạo.

Có ba loại file

  • thường - Lưu trữ dữ liệu (văn bản, nhị phân, và thực thi).
  • Thư mục - Chứa thông tin được sử dụng để truy cập các tệp khác.
  • Đặc biệt - Xác định tệp FIFO (đầu tiên, đầu tiên) hoặc thiết bị vật lý.

Tệp thông thường là phổ biến nhất. Khi một chương trình xử lý văn bản được sử dụng để tạo một tài liệu, cả chương trình và tài liệu đều được chứa trong các tệp thông thường.

Tệp thông thường chứa văn bản hoặc thông tin nhị phân. Các tệp văn bản có thể đọc được bởi người dùng. Các tệp nhị phân có thể đọc được bởi máy tính. Các tệp nhị phân có thể là các tệp thi hành có thể hướng dẫn hệ thống thực hiện một công việc. Lệnh, kịch bản lệnh shell và các chương trình khác được lưu trữ trong các tệp thi hành.

Thư mục chứa thông tin hệ thống cần truy cập tất cả các loại tệp nhưng chúng không chứa dữ liệu tệp thực. Do đó, các thư mục chiếm ít không gian hơn một tệp thông thường và cung cấp độ linh hoạt và độ sâu của cấu trúc hệ thống tệp. Mỗi mục nhập thư mục đại diện cho một tệp hoặc thư mục con và chứa tên tệp và tệp i-nút (tham chiếu nút chỉ mục) của tệp. Số i-nút đại diện cho i-nút duy nhất mô tả vị trí của dữ liệu được liên kết với tệp. Thư mục được tạo và kiểm soát bởi một bộ lệnh riêng biệt. Xem "Thư mục" trong Hệ điều hành và quản lý thiết bị để biết thêm thông tin.

Tệp đặc biệt xác định thiết bị cho hệ thống hoặc tệp tạm được tạo bởi quy trình. Có ba loại tệp đặc biệt cơ bản: FIFO (đầu tiên, đầu tiên), khối và ký tự. Tệp FIFO cũng được gọi là đường ống. Ống được tạo ra bởi một quá trình để tạm thời cho phép giao tiếp với một quá trình khác. Những tệp này không tồn tại khi quá trình đầu tiên kết thúc. Các tệp khối và ký tự xác định thiết bị.

Tất cả điều này ở trên là từ liên kết đầu tiên. Tôi đã kiểm tra trong nhiều nguồn khác liên quan đến các hệ điều hành khác nhau và có vẻ như đây là định nghĩa phổ biến nhất trên tất cả các nguồn tôi đã tìm thấy.

+0

Câu trả lời này không bao gồm các liên kết tượng trưng. Đây sẽ là một tập tin đặc biệt. – Brian

+0

Những điều khoản này cũng áp dụng cho Windows và các nền tảng khác? – Thunderforge

+0

Có. Như tôi đã nói ở dưới cùng của câu trả lời nó áp dụng cho mọi SO. –

3

Tôi không phải là chuyên gia về điều này nhưng ở cái nhìn đầu tiên, BasicFileAttributes không phải là một lớp mà là một giao diện. Vì vậy, bất cứ điều gì một tập tin thường xuyên phụ thuộc vào việc thực hiện giao diện này. Tôi có thể thấy rằng có một ví dụ lớp WindowsFileAttributs triển khai giao diện này.

Nếu bạn có một cái nhìn tại OpenJDK version của lớp này bạn sẽ thấy rằng nó là

!isSymbolicLink() && !isDirectory() && !isOther(); 

Nhận tất cả các thông tin khác từ các mã ;-)

Các vấn đề liên quan