簡體   English   中英

FileInputStream如何找到文件?

[英]How does FileInputStream find the file?

我正在設計一個程序,該程序需要從包含大約10 ^ 8個文件的文件夾中讀取文件。

FileInputStream如何從提供的文件名中找到所需的文件? 它是否類似於具有O(1)查找時間的哈希表,還是線性遍歷給定文件夾中的文件直到找到匹配項?

我想這可能與Windows文件存儲的工作方式有關,而不是與FileInputStream有關,但老實說我不確定。

該文件名將傳遞到操作系統,並讀取目錄以查找匹配的名稱。 它可以優化查找,但是不涉及Java。

您可以考慮將文件分成多個目錄,理想情況下使用較少的文件。 打開和關閉許多小文件花費了大部分時間來打開和關閉文件描述符。 發現和閱讀通常要小得多。

它要求操作系統找到該文件。 操作系統是如何做到的? 它取決於操作系統和文件系統。 至少在某些情況下,答案是:“是的,它像HashMap一樣工作”。 另一方面,我知道至少有一些OS /文件系統組合,一旦在同一目錄中有數千個文件,它們就會嚴重陷入困境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM