java - 软件如何引用硬盘上的文件

标签 java file

有时,了解底层发生的事情是件好事,但 IMO .NET 变得如此抽象(以一种好的方式),这会使学习变得困难,因为我不了解表面之下发生的事情!

我假设 .NET 与 MS 操作系统紧密结合。因此,在使用 Directory() 或 File() 类时,我可以获取文件数据并且可以(仅)理解有关其工作原理的理论。

但是,像 Java 这样的东西并不是 Windows 原生的。那么,它如何引用我硬盘上的文件呢?尽管我希望我的问题是关于任何非 Microsoft 语言的,但我限制在 Java 上以保持重点

在我看来,只有两种方法。

  1. 直接从硬盘获取文件(因此不使用操作系统。
    或者(这就是我迷路的地方)

  2. Java 运行时环境是否必须创建一个操作系统实例,然后获取公开“HereAreTheFiles()”方法的公共(public)方法。 EG下面的伪代码

       WindowsOS windowsOs = new WindowsOS();
       string[] files = windowsOs.GetAllFolders()
    

我希望这是有道理的。

最佳答案

每个操作系统都会有系统 api 来与操作系统/系统相关的任务进行交互。

在 Java 案例中,特定于 Windows 的 JVM/JRE 正在 Windows 环境中运行。因此所有 Java 系统函数都与操作系统/系统 API 交互以执行文件读/写。

Java 提供了一个抽象层来执行这些操作,它又通过调用操作系统的系统 API/ native API 调用来实现

关于java - 软件如何引用硬盘上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357817/

相关文章:

java - Spring @PreDestroy : No logging because Logback stops too soon

JAVA - SPARK - saveAsTextFile 无法应用于 '(java.lang.String, org.apache.hadoop.io.compress.CompressionCodec)'

java - 将 Liferay portlet 导入 Eclipse IDE

java - while循环只打印一次而不是整个循环

java - Firebase 在本地存储 access_token

c - 在 C 中打印结构

file - 保存 curl 下载统计/日志

javascript - 如何从绝对网络路径加载javascript文件

java - 如何让多个线程和类写入 Java 中的同一个日志文件?

java - 暂停 channel 到 channel 复制文件