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

java的InputStream獲取字節(jié)大小相關(guān)方法

這篇具有很好參考價(jià)值的文章主要介紹了java的InputStream獲取字節(jié)大小相關(guān)方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

java的InputStream獲取字節(jié)大小相關(guān)方法

1 通過StreamUtils工具類的copyToByteArray()方法獲?。ㄍ扑])

正常大部分項(xiàng)目都是使用的Spring,而Spring已經(jīng)幫我們開發(fā)好了相應(yīng)的工具類,我們直接調(diào)用即可。

InputStream is = this.getClass().getResourceAsStream(filePath);
byte[] bytes = StreamUtils.copyToByteArray(is);
is.read(bytes);

2 通過available()方法獲?。ú煌扑])

InputStream is = this.getClass().getResourceAsStream(filePath);
byte[] bytes = new byte[is.available()];
is.read(bytes);

2.1 不推薦理由

可以看一下方法注釋:

/**
 * Returns an estimate of the number of bytes that can be read (or
 * skipped over) from this input stream without blocking by the next
 * invocation of a method for this input stream. The next invocation
 * might be the same thread or another thread.  A single read or skip of this
 * many bytes will not block, but may read or skip fewer bytes.
 *
 * <p> Note that while some implementations of {@code InputStream} will return
 * the total number of bytes in the stream, many will not.  It is
 * never correct to use the return value of this method to allocate
 * a buffer intended to hold all data in this stream.
 *
 * <p> A subclass' implementation of this method may choose to throw an
 * {@link java.io.IOException} if this input stream has been closed by
 * invoking the {@link #close()} method.
 *
 * <p> The {@code available} method for class {@code InputStream} always
 * returns {@code 0}.
 *
 * <p> This method should be overridden by subclasses.
 *
 * @return ? ? an estimate of the number of bytes that can be read (or skipped
 * ? ? ? ? ? ? over) from this input stream without blocking or {@code 0} when
 * ? ? ? ? ? ? it reaches the end of the input stream.
 * @exception java.io.IOException if an I/O error occurs.
 */

大致意思是返回的字節(jié)數(shù)可能由于網(wǎng)絡(luò)原因阻塞一次只能返回部分字節(jié)或者另外一個(gè)線程也讀了導(dǎo)致返回部分字節(jié),也就是說如果使用available()方法去獲取InputStream的長(zhǎng)度來作為字節(jié)數(shù)組的長(zhǎng)度,那可能會(huì)出現(xiàn)字節(jié)接受不完整的錯(cuò)誤,所以不推薦使用該方法的返回值去分配一個(gè)緩沖的byte數(shù)組。文章來源地址http://www.zghlxwxcb.cn/news/detail-726585.html

3 通過file.length()來獲取

File file = new File(path);
InputStream stream = new FileInputStream(file);
byte[] bytes = new byte[file.length()]

到了這里,關(guān)于java的InputStream獲取字節(jié)大小相關(guān)方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 認(rèn)識(shí)File 類和InputStream, OutputStream

    認(rèn)識(shí)File 類和InputStream, OutputStream

    ? ? ? ? Java中通過file類來 對(duì)一個(gè)文件(包括目錄)進(jìn)行抽象的描述。 并且有File類對(duì)象,并不代表真實(shí)存在該文件 。認(rèn)識(shí)File類,就先了解File類的屬性,構(gòu)造方法,方法。 屬性: 修飾符及類型? ? ? ? ?屬性? ? ? ? ? ? ? ? ? ? ? ?? 說明 static String? ? ? ? ?pathSeparato

    2024年02月07日
    瀏覽(15)
  • File 類和 InputStream, OutputStream 的用法

    File 類和 InputStream, OutputStream 的用法

    目錄 1.文件系統(tǒng)操作? File 類 2.文件內(nèi)容操作? InputStream? 1.創(chuàng)建InputStream類對(duì)象 ?2.讀文件 OutputStream 1.創(chuàng)建OutputStream類對(duì)象 2.寫文件 ? ? ? 上篇博客我們?cè)斍榻榻B了文件系統(tǒng)的相關(guān)知識(shí)。在文件系統(tǒng)操作中,由于文件是在硬盤上的,直接寫代碼不好操作,所以,我們通過創(chuàng)建

    2024年02月03日
    瀏覽(21)
  • outputStream(輸出流)轉(zhuǎn)inputstream(輸入流)以及輸入流如何復(fù)用

    需求: 通過MultipartFile 上傳文件到文件服務(wù)器,上傳前要把文件轉(zhuǎn)為pdf格式進(jìn)行上傳,并生成文件摘要用來驗(yàn)證服務(wù)器中的文件是否被篡改。 準(zhǔn)備: 需要涉及到 inputstream(輸入流)或outputStream(輸出流)要使用兩次 。 一、如果該文件本身就是pdf格式則直接進(jìn)行上傳。第一次

    2024年02月14日
    瀏覽(18)
  • 【JavaEE】文件操作: File 類的用法和 InputStream, OutputStream 的用法

    【JavaEE】文件操作: File 類的用法和 InputStream, OutputStream 的用法

    目錄 1. File 概述 1.1 File的屬性 1.2 File的構(gòu)造方法 1.3 File的方法 2.讀文件 2.1 InputStream 概述 2.2 FileInputStream 概述 2.3 正確打開和關(guān)閉文件的方式 2.4 不同方式讀取文件代碼示例 2.4 另一種方法:利用?Scanner 進(jìn)行字符讀取 3.寫文件 3.1 OutputStream 概述 3.2?利用 OutputStreamWriter 進(jìn)行字符寫

    2024年01月19日
    瀏覽(52)
  • <JavaEE> 文件IO -- 數(shù)據(jù)流和文件內(nèi)容操作(Reader 和 Writer 、InputStream 和 OutputStream)

    目錄 一、數(shù)據(jù)流概述 二、流的關(guān)閉 2.1 使用 close() 方法 2.2 使用 try-finally 2.3 使用?try-with-resources 三、字符流的讀寫 3.1 Reader 類 3.2 Writer 類 四、字節(jié)流的讀寫 4.1?InputStream?類 4.2?OutputStream?類 1)在 Java 中,文件的操作分為兩類 操作文件系統(tǒng) 通過 File 類,在系統(tǒng)中進(jìn)行增、刪

    2024年02月04日
    瀏覽(26)
  • JAVA將字節(jié)大小轉(zhuǎn)換成(B,KB,MB,GB,TB)單位

    項(xiàng)目中需要判斷一個(gè)文件是否超過指定大小,如果超過了,需要將文件大小轉(zhuǎn)換為最大滿足單位。 這里用了兩種方式

    2024年02月10日
    瀏覽(11)
  • 數(shù)字證書的相關(guān)專業(yè)名詞(中)---根證書和CRL,以及java中CRL的獲取和驗(yàn)證方法

    數(shù)字證書的相關(guān)專業(yè)名詞(中)---根證書和CRL,以及java中CRL的獲取和驗(yàn)證方法

    上篇文章我們主要了解了PKI中的數(shù)字證書和PKCS,這篇文章我們主要了解一下根證書,以及OCSP和CRL。 在公鑰基礎(chǔ)設(shè)施(PKI)中,根證書是 整個(gè)數(shù)字證書體系的最高級(jí)別證書 。根證書由受信任的第三方機(jī)構(gòu)(CA)頒發(fā),用于驗(yàn)證其他證書以及建立信任鏈。 當(dāng)您收到一個(gè)數(shù)字證

    2024年02月05日
    瀏覽(15)
  • Java獲取上傳的文件大小并且轉(zhuǎn)換對(duì)文件大小進(jìn)行單位轉(zhuǎn)化

    Java獲取上傳的文件大小并且轉(zhuǎn)換對(duì)文件大小進(jìn)行單位轉(zhuǎn)化

    今天產(chǎn)品提出來一個(gè)需求,上傳文件的時(shí)候要記錄文件的大小,并且保存到數(shù)據(jù)庫(kù)里面。 正好借著這個(gè)機(jī)會(huì),分享下對(duì)文件大小進(jìn)行單位轉(zhuǎn)化的一個(gè)方法。 一般和前后端進(jìn)行文件交互,都是通過MultipartFile實(shí)現(xiàn)的,它有一個(gè)方法:getSize() 無需參數(shù),返回的是該文件Long類型的

    2024年02月16日
    瀏覽(24)
  • MultipartFile獲取文件名,文件大小,文件后綴等方法

    獲取文件名及后綴信息: 獲取文件名: 獲取文件后綴:這個(gè)后綴帶‘.’如:.zip,如果不想帶‘.’這樣即可lastIndexOf(\\\".\\\")+1 獲取文件類型: 獲取文件大?。?/p>

    2024年02月16日
    瀏覽(99)
  • Qt 常用方法 獲取磁盤總大小、可用空間、文件夾大小 文件大小B KB M G轉(zhuǎn)換

    Qt 常用方法 獲取磁盤總大小、可用空間、文件夾大小 文件大小B KB M G轉(zhuǎn)換

    1.通過QFile獲取文件大小 注意:返回的是字節(jié)個(gè)數(shù) 通過QFileInfo獲取文件大小 2. 獲取磁盤空間 3 .獲取選擇路徑下總文件大小 4. 轉(zhuǎn)換大小單位 bit? === byte?? bit / 8 byte === KB byte / 1024 KB = MB KB / 1024 MB = GB MB / 1024 GB === TB GB / 1024

    2024年02月06日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包