为啥Java中的file类无法只能操作不能读写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥Java中的file类无法只能操作不能读写?相关的知识,希望对你有一定的参考价值。

请用计算机理论的角度解释一下,file类的源文件是怎样完成文件操作过程的,该过程与I/O流有什么区别?

说下我的理解,通常意思下,我们理解的文件,其实包含两部分,一部分是指保存在磁盘上的文件的具体内容,另一部分指的是保存在操作系统文件系统里面的文件名称,目录那些东西。(这里你可以去搜索下 linux inode 理解相关的概念,这里我也不是很熟)。
文件系统是操作系统封装磁盘操作产生的一层东西,我们只能通过操作系统提供的文件系统的API去操作磁盘。(这里可以去学习下操作系统相关的知识)。
java中的FIle指的是 文件系统里面的一个file,这个对象,只包含文件的一些元数据,文件大小,位置,创建时间,修改时间,创建人,权限等等一系列的文件元数据,它是不包含文件具体的内容的。所以你只能操作它,不能读写。所谓的操作,也就是对文件系统 那一棵文件目录树 进行增删改查的操作。
file这个对象里,应该包含这个文件在磁盘上的具体位置,通过这个位置,你就可以通过文件系统的API进行文件的读写了。(这里,我的理解是这样,具体是不是这样,我也不确定,可以去搜索 posix标准 查看通用的一些文件操作的API 来验证下)。
而对文件具体内容的操作,你必须通过IO操作去实现。这里过程大概如下,涉及操作系统跟驱动相关的过程,去百度吧,我也不是很熟。
参考技术A File类是被设计成代表一个Java被管理的文件系统文件。这个文件也可以是目录。
主要记录文件的相关属性信息,比如读写权限、路径、大小,及相关操作。。
由于这个类可以用来设计尚未创建的假想文件,所以基本不涉及文件本身的读写操作。
具体读写由IO流,reader/writer,和新IO的缓存块来做....本回答被提问者采纳

Java中的IO流

IO流的分类 按照数据类型划分:字符流和字节流 按照数据流向划分:输入流和输出流 对于纯文本数据,优先使用字符流。除此之外都使用字节流。 File类 **java.io.File:**不能对文件内容(流)进行读写,只能对文件和文件夹进行操作 绝对路径和相对路径 路径不区分大小写,一个反斜杠是转义字符

以上是关于为啥Java中的file类无法只能操作不能读写?的主要内容,如果未能解决你的问题,请参考以下文章

Java IO流总结

JAVA:为啥我不能访问同一个类中的方法?

File类与字节流

为啥在java中不能导入awt包

Java基础巩固

java常用的文件读写操作