2011-07-24 70 views
1

我需要讀取文件中的文件,也就是罐子文件夾內以這樣的方式閱讀從文件夾中的.jar

DataSource coverdata = new FileDataSource(new File("here is the path")); 

如何得到確切的路徑?我正在使用一個庫,所以我可以訪問文件的唯一方法是​​,沒有輸入流。

+0

嗯,似乎是這一個的副本:http://stackoverflow.com/questions/6639/how-should-i-load-files-into-my-java-application – home

+0

@Arthur Shniv *「' DataSource'「*你能爲我隱瞞嗎?這是一個'javax.activation.DataSource',一個'javax.sql.DataSource'或其他的東西嗎? *「我正在使用一個庫,所以我可以訪問文件的唯一方式是新的File(),沒有輸入流。」*聽起來像需要讓他們修復它們的API。要麼或使用不同的。 –

回答

1

你走錯了路。文件只是直接寫入文件系統的東西。 jar中的文件不是從Java API的角度來看的文件。

要閱讀此文件,您必須使用JarInputStream或ZipInputStream解析JAR,進入有趣的條目並從輸入流中讀取。這並不難,但你必須編寫幾行代碼。

其他方法是使用來自jakarta.org的VFS包。它爲您提供了不同文件系統,ZIP,TAR和其他容器格式元素的統一視圖。

0

如何使用@home已經討論過的InputStream(getResourceAsStream())方法創建新的臨時文件,然後將其作爲普通文件讀取?