国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java通過InputStream判斷word格式

這篇具有很好參考價(jià)值的文章主要介紹了Java通過InputStream判斷word格式。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


Java通過InputStream判斷word格式)

1. 傳入inputStream文件流

2. 讀取文件流前八個(gè)字節(jié)到字節(jié)流數(shù)組中

byte[] byteArray = new byte[8];
inputStream.read(byteArray, 0, 8);

3. 轉(zhuǎn)為字符串

StringBuilder sb = new StringBuilder();
for (byte b : byteArray) {
    sb.append(String.format("%02X", b));
}

4. 對比字符串判斷文件類型

if (hexString.startsWith("D0CF11E0A1B11AE1")) {
    return "doc";
} else if (hexString.startsWith("504B030414000600")) {
    return "docx";
} else {
    return "unknown";
}

5. 完整代碼

/**
     * 通過流判斷word格式
     * @param inputStream
     * @return
     * @throws IOException
     */
    public static String detectFileType(InputStream inputStream) throws IOException {
    byte[] byteArray = new byte[8];
    try{
        inputStream.read(byteArray, 0, 8);
        String hexString = bytesToHexString(byteArray);
        if (hexString.startsWith("D0CF11E0A1B11AE1")) {
            return "doc";
        } else if (hexString.startsWith("504B030414000600")) {
            return "docx";
        } else {
            return "unknown";
        }
    } finally {
        if (inputStream !=null) {
            inputStream.close();
        }
    }
}

private static String bytesToHexString(byte[] byteArray) {
    StringBuilder sb = new StringBuilder();
    for (byte b : byteArray) {
        sb.append(String.format("%02X", b));
    }
    return sb.toString();
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-607620.html

到了這里,關(guān)于Java通過InputStream判斷word格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java的InputStream轉(zhuǎn)FileInputStream操作

    處理邏輯: 就是將輸入流寫到臨時(shí)文件中,再轉(zhuǎn)為文件流,最后刪除臨時(shí)文件 注意:

    2024年02月16日
    瀏覽(18)
  • java的InputStream獲取字節(jié)大小相關(guān)方法

    正常大部分項(xiàng)目都是使用的Spring,而Spring已經(jīng)幫我們開發(fā)好了相應(yīng)的工具類,我們直接調(diào)用即可。 2.1 不推薦理由 可以看一下方法注釋: 大致意思是返回的字節(jié)數(shù)可能由于網(wǎng)絡(luò)原因阻塞一次只能返回部分字節(jié)或者另外一個(gè)線程也讀了導(dǎo)致返回部分字節(jié),也就是說如果使用av

    2024年02月07日
    瀏覽(15)
  • Java處理doc類型的Word文檔轉(zhuǎn)換成html(按順序保留格式+圖片)

    Java處理doc類型的Word文檔轉(zhuǎn)換成html(按順序保留格式+圖片)

    最新有個(gè)新需求,就是doc文檔轉(zhuǎn)換html內(nèi)容倒不是很難,給大家分享一下,總體思路就是按doc轉(zhuǎn)html的思路來走,唯一缺點(diǎn)是不會(huì)自動(dòng)轉(zhuǎn)換圖片,圖片是要手動(dòng)轉(zhuǎn)成base64,默認(rèn)是有html、body、head、meta等等標(biāo)簽,我這里都用正則處理掉了。 需要注意的是: .docx 格式的 Word 文檔是

    2024年02月03日
    瀏覽(30)
  • Java Apache POI 小記(讀取Word通過模板創(chuàng)建PPT)

    近期身邊的一位朋友來尋求幫助,她在日常工作時(shí),總是需要做一些重復(fù)的事情,所以想著是否能通過程序?qū)崿F(xiàn)自動(dòng)化的操作。 具體需求為,每天會(huì)收到一份固定格式的Word文件,然后根據(jù)其中的內(nèi)容,填充到固定的PPT模板中,最終生成圖片輸出。 有了需求后,第一件事自然

    2024年01月19日
    瀏覽(26)
  • 解決:Java后端返回給前端的Date格式數(shù)據(jù)相差8小時(shí)的問題

    問題描述: 后端得到的數(shù)據(jù)是對的,但是返回給前端后,數(shù)據(jù)比原數(shù)據(jù)慢了8小時(shí)。 原因: json數(shù)據(jù)在返回瀏覽器端是會(huì)被spring-boot默認(rèn)的Jackson框架轉(zhuǎn)換,而Jackson框架默認(rèn)的時(shí)區(qū)GMT(相對于中國是少了8小時(shí))。 解決: 在application.yml文件中,配置

    2024年04月16日
    瀏覽(163)
  • 【已解決】Java 后端使用數(shù)組流 Array.stream() 將數(shù)組格式的 Cookie 轉(zhuǎn)換成字符串格式

    【已解決】Java 后端使用數(shù)組流 Array.stream() 將數(shù)組格式的 Cookie 轉(zhuǎn)換成字符串格式

    ??工作中遇到這樣一個(gè)場景:遠(yuǎn)程調(diào)用某個(gè)接口,該接口需要用戶的 Cookie 信息進(jìn)行權(quán)限認(rèn)證,認(rèn)證通過之后才可以打通并返回?cái)?shù)據(jù)。 在后端拿到 httpServletRequest 后,調(diào)用 getCookies() 方法,返回的是一個(gè) Cookie 類型的數(shù)組。Debug 過程中拿到的 cookie 數(shù)據(jù)結(jié)構(gòu)如下所示: 因此,需

    2024年02月11日
    瀏覽(26)
  • 在java中如何使用openOffice進(jìn)行格式轉(zhuǎn)換,word,excel,ppt,pdf互相轉(zhuǎn)換

    在java中如何使用openOffice進(jìn)行格式轉(zhuǎn)換,word,excel,ppt,pdf互相轉(zhuǎn)換

    1.首先需要下載并安裝openOffice,下載地址為:?Apache OpenOffice download | SourceForge.net 2.安裝后,可以測試下是否可用; 3.build.gradle中引入依賴: 4.創(chuàng)建工具類,啟動(dòng)openOffice服務(wù)的方法 5.結(jié)束openOffice服務(wù)的方法 7.在測試方法中進(jìn)行格式轉(zhuǎn)換,如,他可以是任意類型轉(zhuǎn)換,如excel轉(zhuǎn)換

    2024年02月14日
    瀏覽(29)
  • 在java中將inputStream對象轉(zhuǎn)換為File對象(不生成本地文件)

    需求說明 在后端中通過POI生成Excel文件流,將輸出流(outputStream)轉(zhuǎn)為輸入流(inputStream)后又需要將輸入流(inputStream)轉(zhuǎn)為File對象 問題:如果需要將輸入流(inputStream)轉(zhuǎn)為File對象,則必須要根據(jù)本地路徑去生成一個(gè)File對象才行,也就是說不管怎樣本地都必須要生成出來

    2024年02月15日
    瀏覽(18)
  • 如何通過Java代碼將 PDF文檔轉(zhuǎn)為 HTML格式

    如何通過Java代碼將 PDF文檔轉(zhuǎn)為 HTML格式

    雖然PDF文件適合用于打印和發(fā)布,但不適合所有類型的文檔。例如,包含復(fù)雜圖表和圖形的文檔可能無法在PDF中呈現(xiàn)得很好。但是HTML文件可以在任何可運(yùn)行瀏覽器的計(jì)算機(jī)上進(jìn)行閱讀并顯示。并且HTML還具有占用服務(wù)器資源較小,便于搜索引擎收錄的特點(diǎn)。那么今天這篇文章就

    2024年02月05日
    瀏覽(21)
  • Java后端返回的MySQL日期數(shù)據(jù)在前端格式錯(cuò)誤的解決方法,區(qū)分jackson和fastjson

    Java后端返回的MySQL日期數(shù)據(jù)在前端格式錯(cuò)誤的解決方法,區(qū)分jackson和fastjson

    在寫web項(xiàng)目的時(shí)候經(jīng)常會(huì)遇到后端返回的MySQL 日期數(shù)據(jù)(date) 類型在前端顯示不正確的情況,有的時(shí)候會(huì)出現(xiàn)一串?dāng)?shù)字的時(shí)間戳,有的時(shí)候顯示為日期晚了一天。 這是因Json給前端返回?cái)?shù)據(jù)的時(shí)候格式問題造成的 其實(shí)總結(jié)起來就是一句話在Model部分對于JavaBean定義參數(shù)類型的時(shí)

    2024年02月03日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包