2015-07-12 64 views
2

我正在將3D模型數據寫入文件,同時包含大量不同類型的信息(網格,紋理,動畫等),大小約爲50至100 MB。一個大文件或幾個小文件?

我想把所有這些放在一個文件中,但是如果我只需要讀取文件的一小部分就可以得到我想要的,恐怕會花費我。

我應該爲此使用多個較小的文件還是單個非常大的文件好嗎?我不知道文件系統如何處理試圖繞過巨型文件,所以我知道通過大文件迭代可能是昂貴的,或根本沒有問題。

另外,如果使用單個大文件,我還有什麼特別的嗎?

+1

'我不知道這個文件如何對待試圖跳來跳去巨型文件,所以我爲人人知道通過大文件進行迭代可能是昂貴的,或根本沒有問題。 '跳轉不一樣,直到一些特定的位置開始閱讀一切。跳是好的。 – deviantfan

+1

在這種情況下什麼是「非常大」? –

+0

@MatsPetersson - 約50mb。這不是......我想大量的,但它是我經常使用的最大文件大小 –

回答

6

在文件中間訪問數據沒有問題 - 操作系統不需要讀取整個文件,它可以輕鬆地跳到任何點。如果出現複雜性問題,您需要提供一個可讀取的索引以確定各種數據的位置。例如,如果您想要讀取特定的動畫,則需要一種方法來告訴程序該數據在文件中的位置。一種方法是將索引結構存儲在文件的開頭,然後程序將讀取該索引結構以找出所有數據塊的位置。然後它可以在這個索引中查找動畫,發現它位於位置24680,長度爲2048字節,然後可以尋找這個位置來讀取數據。

如果你不熟悉的文件中尋找你可能想看看了fseek電話:http://www.cplusplus.com/reference/cstdio/fseek/

相關問題