当我们创建没有扩展名的新文件时,会创建啥类型的文件?
Posted
技术标签:
【中文标题】当我们创建没有扩展名的新文件时,会创建啥类型的文件?【英文标题】:What type of File is created when we create new File without the extension?当我们创建没有扩展名的新文件时,会创建什么类型的文件? 【发布时间】:2016-09-04 22:28:27 【问题描述】:在java中,当我们创建文件时,我们使用扩展名创建文件。 例如:
File file = new File("D:/light.txt");
我想知道当我们创建一个没有文件扩展名类型的文件时,我们会得到什么类型的文件格式。 例如:
File file = new File("D:/light");
【问题讨论】:
没有扩展名的文件。 文件的类型取决于其内容,而不是其名称或扩展名。 我投票结束这个问题,因为它与编程无关。 文件本身没有格式。 文件格式的存在只是因为读取它的程序以一种或另一种方式解释数据。 很有趣。试试看,看看你自己:) 【参考方案1】:此答案假设您所做的不仅仅是创建 File
对象 - 您实际上是在文件系统上创建文件。 (File
对象只是文件系统条目的逻辑表示,它可能存在也可能不存在。)如果您真的只是创建一个 File
对象,请阅读 EJP 的答案 - 在那点,你基本上刚刚有了一个名字。那没有“类型”或“格式”。
扩展名只是名称的一部分。操作系统可能会尝试使用它来显示不同的图标,或者在您双击图标时启动特定的应用程序,等等 - 但它实际上只是名称的一部分。
基本上,一个文件包括:
创建时指定的名称 您在其中写入的字节数 访问控制等元数据除非您故意添加元数据,否则它通常只是继承(默认权限等)。
您可以在任何文件中写入任何数据——仅仅因为文件具有.txt
的扩展名并不意味着它绝对是一个文本文件。例如,它的内容可能是实际上 MP3 编码的音频数据。操作系统是否使用文件扩展名或内容来确定如何处理文件取决于操作系统。
【讨论】:
这是否意味着如果我们创建一个 .txt 文件并将位图信息写入其中,即使扩展名声明它是文本,它也会是图像文件? @ChitKhine:是的,没错。亲自尝试一下 - 将图像文件重命名为foo.txt
并在记事本中打开它...你会看到真正的图像数据垃圾。
好的。试过了,和你说的一样。但是,如果我用油漆打开它,即使它是 txt 文件,它也会打开。
@ChitKhine:所以大概意思是paint忽略文件扩展名,这是合理的。基本上,由每个应用程序(和操作系统)来决定对扩展的关注程度。【参考方案2】:
当我们创建没有扩展名的新文件时,会创建什么类型的文件?
根本没有创建文件,只有一种File
。
在java中,当我们创建文件时,我们使用扩展名来创建文件。
或者没有。
例如:
File file = new File("D:/light.txt");
我想知道当我们创建一个没有文件扩展名类型的文件时,我们会得到什么类型的文件格式。
你没有。你根本没有得到任何文件格式,因为你没有得到文件:内存中只有一个 File
对象。
例如:
File file = new File("D:/light");
您可以生成所有您想要的示例,但不会创建文件,也没有文件格式。
在任何情况下,Java 都不关心文件扩展名。您的操作系统可能会,但那是另一回事。
【讨论】:
这是否意味着如果我在文件中写入一些文本而不输入扩展名,它将是一个文本文件?以上是关于当我们创建没有扩展名的新文件时,会创建啥类型的文件?的主要内容,如果未能解决你的问题,请参考以下文章