我有一個用Java編寫的服務器,在一個請求中,從客戶端獲取一個完整的文件。該文件作爲字節列表傳遞給服務器,並最終在java服務器中表示爲字節數組。Java:告訴一個字節數組是否是一個zip文件
是否有一些標準的方式/標準庫,可以告訴是否由字節數組表示的文件是有效的zip文件?
我有一個用Java編寫的服務器,在一個請求中,從客戶端獲取一個完整的文件。該文件作爲字節列表傳遞給服務器,並最終在java服務器中表示爲字節數組。Java:告訴一個字節數組是否是一個zip文件
是否有一些標準的方式/標準庫,可以告訴是否由字節數組表示的文件是有效的zip文件?
文件在文件的開頭使用magic numbers通常被確定。
爲了對某個給定文件進行有根據的猜測Java內置了檢測某些文件類型的方法:Files.probeContentType。此外,還有各種第三方庫:simplemagic或Apache Tika(它不僅支持幻數)。
但是,內容檢測本身並不會告訴您文件是否爲有效。爲此,您需要一些實際知道如何讀取Zip文件的東西,例如Java的ZipFile。
檢查Zip4j庫。 ZipFile
類有isValidZipFile()
方法
如果你想標準的方式來實現這個過程,你可以使用序列化API.For使用下面的文章,發現自己在搜索這個主題時。
看看它的[幻數](https://en.wikipedia.org/wiki/Zip_(file_format))。 –
你對「有效的壓縮文件」的定義是什麼? –