最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Base64解碼錯(cuò)誤及解決方法

 更新時(shí)間:2018年02月17日 14:26:48   投稿:laozhang  
本篇文章給大家從一個(gè)Java Base64解碼錯(cuò)誤著手給大家分析了錯(cuò)誤的原因以及解決辦法,有興趣的可以參考學(xué)習(xí)下。

問(wèn)題提出:

自己在做一個(gè)小網(wǎng)站充當(dāng)練手,但是前端圖片經(jīng)過(guò)base64加密后傳往后端在解碼。但是一直都有問(wèn)題,請(qǐng)大神賜教

  public static String base64ToImg(String src) throws IOException {
    String uuid = UUID.randomUUID().toString();
    StringBuilder newPath = new StringBuilder(IMG_ROOT_PATH);
    newPath.append(separator).
        append(uuid).
        append(IMG_SUFFIX);
    if(src == null){
      return null;
    }
    byte[] data = null;
    Base64.Decoder decoder = Base64.getDecoder();
    try (OutputStream out = new FileOutputStream(newPath.toString())) {
      data = decoder.decode(src);
      out.write(data);
      return newPath.toString();
    } catch (IOException e) {
      throw new IOException();
    }
  }
java.lang.IllegalArgumentException: Input byte array has wrong 4-byte ending unit

以上是相關(guān)的異常信息。我試圖將前端的base64碼粘貼到記事本然后自己在試著解碼,也是同樣問(wèn)題。

解決辦法:

IllegalArgumentException:非法參數(shù)異常,

試下這個(gè),應(yīng)該可以。

給你講述下過(guò)程:

去了stackoverflow,debug。最后發(fā)現(xiàn)data為null,,加油吧,我們需要學(xué)的還很多

下次遇到問(wèn)題debug下,看是哪條代碼出現(xiàn)問(wèn)題了,通過(guò)回答你,我也學(xué)到了很多

關(guān)鍵點(diǎn)在這里: throw new IOException();

try (OutputStream out = new FileOutputStream(newPath.toString())) {
      out.write(data);
    } catch (IOException e) {
      e.printStackTrace();
      throw new RuntimeException("異常是這么拋出的");
      //throw new RuntimeException(e);
    }
public static String base64ToImg(String src) throws IOException {
    String uuid = UUID.randomUUID().toString();
    StringBuilder newPath = new StringBuilder("xx");
    newPath.append("xx").
        append(uuid).
        append("xx");
    if (src == null) {
      return null;
    }
    byte[] data = Base64.getDecoder().decode(src);
    try (OutputStream out = new FileOutputStream(newPath.toString())) {
      out.write(data);
    } catch (IOException e) {
      e.printStackTrace();
    }
    return newPath.toString();
  }

補(bǔ)充另外一種常用關(guān)閉資源:

 public static String base64ToImg(String src) throws IOException {
    String uuid = UUID.randomUUID().toString();
    StringBuilder newPath = new StringBuilder("xx");
    newPath.append("xx").
        append(uuid).
        append("xx");
    if (src == null) {
      return null;
    }
    byte[] data = null;
    OutputStream out = null;
    Base64.Decoder decoder = Base64.getDecoder();
    try {
      out = new FileOutputStream(newPath.toString());
      data = decoder.decode(src);
      out.write(data);
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (out != null) {
        out.close();
      }
    }
    return newPath.toString();
  }

相關(guān)文章

  • Java的JSON轉(zhuǎn)換類庫(kù)GSON的基礎(chǔ)使用教程

    Java的JSON轉(zhuǎn)換類庫(kù)GSON的基礎(chǔ)使用教程

    GSON是谷歌開(kāi)源的一款Java對(duì)象與JSON對(duì)象互相轉(zhuǎn)換的類庫(kù),Java的JSON轉(zhuǎn)換類庫(kù)GSON的基礎(chǔ)使用教程,需要的朋友可以參考下
    2016-06-06
  • 淺談Java中的Filter過(guò)濾器

    淺談Java中的Filter過(guò)濾器

    本篇文章主要介紹了淺談Java中的Filter過(guò)濾器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • java數(shù)組中的異常類型整理

    java數(shù)組中的異常類型整理

    在本篇文章里小編給各位分享的是一篇關(guān)于java數(shù)組中的異常類型整理內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • Jmeter如何將每次測(cè)試的結(jié)果保存到文件中

    Jmeter如何將每次測(cè)試的結(jié)果保存到文件中

    這篇文章主要介紹了Jmeter如何將每次測(cè)試的結(jié)果保存到文件中的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java?Socket實(shí)現(xiàn)聊天室功能

    Java?Socket實(shí)現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了Java?Socket實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 解析Java虛擬機(jī)中類的初始化及加載器的父委托機(jī)制

    解析Java虛擬機(jī)中類的初始化及加載器的父委托機(jī)制

    這篇文章主要介紹了Java虛擬機(jī)中類的初始化及加載器的父委托機(jī)制,包括命名空間等深層次的知識(shí)點(diǎn)講解,需要的朋友可以參考下
    2015-11-11
  • MapStruct內(nèi)部錯(cuò)誤:NullPointerException的解決方案

    MapStruct內(nèi)部錯(cuò)誤:NullPointerException的解決方案

    在Java開(kāi)發(fā)中,MapStruct是一個(gè)非常流行的對(duì)象映射工具,它通過(guò)注解處理器在編譯時(shí)生成映射代碼,極大地簡(jiǎn)化了對(duì)象之間的轉(zhuǎn)換操作,本文將詳細(xì)分析一個(gè)常見(jiàn)的MapStruct內(nèi)部錯(cuò)誤——NullPointerException,并提供一系列解決方案,需要的朋友可以參考下
    2025-02-02
  • 在Java中操作Zookeeper的示例代碼詳解

    在Java中操作Zookeeper的示例代碼詳解

    這篇文章主要介紹了在Java中操作Zookeeper的示例代碼詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解

    JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解

    這篇文章主要為大家介紹了JUC循環(huán)屏障CyclicBarrier與CountDownLatch區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 獲取Spring當(dāng)前配置的兩種方式

    獲取Spring當(dāng)前配置的兩種方式

    這篇文章主要給大家介紹了獲取Spring當(dāng)前配置的,兩種方式文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

思茅市| 柳林县| 乌兰察布市| 双柏县| 罗山县| 万荣县| 内丘县| 介休市| 科尔| 万州区| 东城区| 玉溪市| 盘锦市| 舒城县| 太保市| 西安市| 浪卡子县| 昭觉县| 绍兴县| 泰宁县| 韩城市| 万宁市| 开封县| 河东区| 亳州市| 苍溪县| 虞城县| 突泉县| 绥宁县| 汝城县| 高邑县| 织金县| 麦盖提县| 凤庆县| 甘谷县| 惠州市| 抚松县| 当阳市| 米林县| 昭平县| 天祝|