为什么Java中的file类无法只能操作不能读写?
请用计算机理论的角度解释一下,file类的源文件是怎样完成文件操作过程的,该过程与I/O流有什么区别?...
请用计算机理论的角度解释一下,file类的源文件是怎样完成文件操作过程的,该过程与I/O流有什么区别?
展开
2个回答
展开全部
说下我的理解,通常意思下,我们理解的文件,其实包含两部分,一部分是指保存在磁盘上的文件的具体内容,另一部分指的是保存在操作系统文件系统里面的文件名称,目录那些东西。(这里你可以去搜索下 linux inode 理解相关的概念,这里我也不是很熟)。
文件系统是操作系统封装磁盘操作产生的一层东西,我们只能通过操作系统提供的文件系统的API去操作磁盘。(这里可以去学习下操作系统相关的知识)。
java中的FIle指的是 文件系统里面的一个file,这个对象,只包含文件的一些元数据,文件大小,位置,创建时间,修改时间,创建人,权限等等一系列的文件元数据,它是不包含文件具体的内容的。所以你只能操作它,不能读写。所谓的操作,也就是对文件系统 那一棵文件目录树 进行增删改查的操作。
file这个对象里,应该包含这个文件在磁盘上的具体位置,通过这个位置,你就可以通过文件系统的API进行文件的读写了。(这里,我的理解是这样,具体是不是这样,我也不确定,可以去搜索 posix标准 查看通用的一些文件操作的API 来验证下)。
而对文件具体内容的操作,你必须通过IO操作去实现。这里过程大概如下,涉及操作系统跟驱动相关的过程,去百度吧,我也不是很熟。
文件系统是操作系统封装磁盘操作产生的一层东西,我们只能通过操作系统提供的文件系统的API去操作磁盘。(这里可以去学习下操作系统相关的知识)。
java中的FIle指的是 文件系统里面的一个file,这个对象,只包含文件的一些元数据,文件大小,位置,创建时间,修改时间,创建人,权限等等一系列的文件元数据,它是不包含文件具体的内容的。所以你只能操作它,不能读写。所谓的操作,也就是对文件系统 那一棵文件目录树 进行增删改查的操作。
file这个对象里,应该包含这个文件在磁盘上的具体位置,通过这个位置,你就可以通过文件系统的API进行文件的读写了。(这里,我的理解是这样,具体是不是这样,我也不确定,可以去搜索 posix标准 查看通用的一些文件操作的API 来验证下)。
而对文件具体内容的操作,你必须通过IO操作去实现。这里过程大概如下,涉及操作系统跟驱动相关的过程,去百度吧,我也不是很熟。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询