[英]Android: load java.io.file from resource file
我想在我的 Android 應用程序中使用 Java 庫。 該庫的類構造函數和方法通常采用文件路徑(配置文件、字典等),然后根據給定路徑構建 java.io.file 實例。
在我的 android 應用程序中,我想將這些文件存儲在“res”文件夾中(可能在 res/raw 中)。 問題是我必須將這些文件的路徑提供給庫的方法。
我可以使用 getResources() 輕松獲取 InputStream,但是我的庫不能直接使用它。 我必須遍歷所有以路徑為參數的方法,將其替換為 InputStream 並修改內容以處理 InputStreams 而不是 Files。 這代表了相當多的工作,我更喜歡不加修改地使用該庫並使其易於升級。
即使使用基於資源文件的 java.io.file 不是一個好習慣,有可能嗎? 如果您能指出一種方法來做到這一點,那肯定會有所幫助。
謝謝你。
如果庫使用java.io.File
那么我認為在 Java 中沒有辦法做到這一點(更不用說 Java 的 Android 子集了)。 使用環回文件系統可能可以解決問題,但這取決於您的 Android 設備的內核等。
看:
如果庫使用java.nio.file.Path
,則可以實現自定義FileSystemProvider
將資源映射到默認文件系統命名空間。
請注意,這是針對常規 Java 7 的。它需要相關 NIO 庫的后向端口才能使其在 Android 上運行。 我又找了一個可行的反向移植,但找不到。
看:
還有另一種“笨拙”的方法來做到這一點。 讓您的應用程序將相關資源復制到可以通過File
訪問的File
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.