2016-05-10 13 views
5

Trong java, khi tạo tệp, chúng tôi tạo tệp bằng tên của tiện ích mở rộng. Ví dụ:Loại tệp nào được tạo khi chúng tôi tạo tệp mới mà không có phần mở rộng?

File file = new File("D:/light.txt"); 

Tôi muốn biết những gì loại định dạng tập tin nào chúng ta nhận được khi chúng ta tạo ra một tập tin mà không có kiểu mở rộng tập tin. Ví dụ:

File file = new File("D:/light"); 
+2

Một tệp không có tiện ích. – Psytho

+0

Loại tệp được xác định bởi nội dung của tệp, không phải tên hoặc tiện ích của tệp. – Kayaman

+0

Tôi đang bỏ phiếu để đóng câu hỏi này là không có chủ đề vì nó không liên quan đến lập trình. – Kayaman

Trả lời

4

Câu trả lời này giả định bạn đang làm nhiều hơn là chỉ tạo đối tượng File - rằng bạn đang thực sự tạo tệp trên hệ thống tệp. (Đối tượng A File chỉ là biểu diễn hợp lý của mục nhập hệ thống tệp có thể tồn tại hoặc không tồn tại.) Nếu bạn đang thực sự chỉ cần tạo đối tượng File, hãy đọc câu trả lời của EJP - tại thời điểm đó, bạn về cơ bản chỉ có một cái tên. Điều đó không có "loại" hoặc "định dạng".

Phần mở rộng chỉ là một phần của tên. Hệ điều hành có thể hãy thử sử dụng biểu tượng đó để hiển thị biểu tượng khác hoặc khởi chạy ứng dụng cụ thể khi bạn nhấp đúp vào biểu tượng hoặc bất kỳ thứ gì - nhưng đó thực sự chỉ là một phần của tên.

Về cơ bản, một tập tin bao gồm:

  • Tên bạn chỉ định khi bạn tạo ra nó
  • Các byte bạn viết trong đó
  • Metadata như kiểm soát truy cập

Trừ khi bạn cố ý thêm siêu dữ liệu, nó thường chỉ được kế thừa (quyền mặc định, v.v.).

Bạn có thể ghi bất kỳ dữ liệu nào trong bất kỳ tệp nào - chỉ vì tệp có phần mở rộng là .txt không có nghĩa là tệp này chắc chắn là tệp văn bản. Ví dụ: có thể có nội dung là thực tế là Dữ liệu âm thanh được mã hóa MP3. Cho dù hệ điều hành sử dụng phần mở rộng tập tin hoặc nội dung để làm việc ra những gì để làm với các tập tin là lên đến hệ điều hành.

+0

Điều đó có nghĩa là nếu chúng ta tạo một tệp .txt và ghi một thông tin bitmap vào nó, nó sẽ là tệp hình ảnh mặc dù phần mở rộng nói nó là một văn bản? –

+1

@ChitKhine: Vâng, chính xác. Hãy thử nó cho chính mình - đổi tên một tập tin hình ảnh thành 'foo.txt' và mở nó trong Notepad ... bạn sẽ thấy rác thực sự là dữ liệu hình ảnh. –

+0

OK. Cố gắng, nó là chính xác như bạn nói. Tuy nhiên, nó mở nếu tôi mở nó với một sơn ngay cả khi nó là một tập tin txt. –

2

Loại file được tạo ra khi chúng ta tạo ra tập tin mới mà không cần phần mở rộng?

Không có tệp nào được tạo và chỉ có một loại File.

Trong java, khi tạo tệp, chúng tôi tạo tệp bằng tên của tiện ích mở rộng.

Hoặc không.

Ví dụ: File file = new File("D:/light.txt");

Tôi muốn biết những gì loại định dạng tập tin nào chúng ta nhận được khi chúng ta tạo ra một tập tin mà không có kiểu mở rộng tập tin.

Bạn không. Bạn không nhận được bất kỳ định dạng tập tin nào cả, bởi vì bạn không nhận được một tập tin: chỉ có một đối tượng File trong bộ nhớ.

Ví dụ: File file = new File("D:/light");

Bạn có thể tạo ra tất cả các ví dụ bạn muốn, nhưng không có tập tin được tạo ra, và không có định dạng tập tin.

Trong mọi trường hợp, Java không quan tâm đến đuôi tệp. Hệ điều hành của bạn có thể, nhưng đó là một câu chuyện khác.

+0

Điều đó có nghĩa là nếu tôi viết một số văn bản vào tệp mà không cần nhập phần mở rộng, nó sẽ là một tệp văn bản? –

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