我们创建没有扩展名的新文件时会创建哪种类型的文件?

时间:2016-05-10 05:44:56

标签: java file operating-system

在java中,当我们创建文件时,我们使用扩展名来创建文件。 例如:

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

我想知道在创建没有文件扩展名类型的文件时我们会得到什么类型的文件格式。 例如:

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

2 个答案:

答案 0 :(得分:4)

这个答案假设您不仅仅是创建一个File对象 - 您实际上是在文件系统上创建文件。 (File对象只是文件系统条目的逻辑表示,可能存在也可能不存在。)如果您真的只创建File对象,请阅读EJP的回答 - 那时,你基本上只是得到了一个名字。那没有“类型”或“格式”。

扩展名只是名称的一部分。操作系统可能尝试使用它来显示不同的图标,或者在双击图标时启动特定的应用程序,或者其他任何东西 - 但它实际上只是名称的一部分。

从根本上说,文件包含:

  • 您在创建时指定的名称
  • 您在其中写入的字节
  • 访问控制等元数据

除非您故意添加元数据,否则它通常只是继承(默认权限等)。

您可以在任何文件中写入任何数据 - 只是因为文件的扩展名为.txt并不意味着它绝对是一个文本文件。例如,它可能具有实际上 MP3编码的音频数据的内容。 OS是否使用文件扩展名或内容来确定如何处理文件取决于操作系统。

答案 1 :(得分:2)

  

创建没有扩展名的新文件时会创建什么类型的文件?

根本没有创建文件,只有一种File

  

在java中,当我们创建文件时,我们使用扩展名来创建文件。

或不。

  

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

     

我想知道在创建没有文件扩展名类型的文件时我们会得到什么类型的文件格式。

你没有。您根本没有获得任何文件格式,因为您没有获得文件:内存中只有File个对象。

  

例如:File file = new File("D:/light");

您可以生成所需的所有示例,但不会创建任何文件,也不会生成文件格式。

在任何情况下,Java都不关心文件扩展名。您的操作系统可能会,但这是一个不同的故事。