<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java Base64 編碼和解碼示例 > 原文: [https://howtodoinjava.com/java8/base64-encoding-and-decoding-example-in-java-8/](https://howtodoinjava.com/java8/base64-encoding-and-decoding-example-in-java-8/) 在 Java 8 學習系列中,我們已經學習了[**使用流**](//howtodoinjava.com/java8/read-file-line-by-line-in-java-8-streams-of-lines-example/ "Read file line by line in java 8: Streams of Lines Example")逐行讀取文件的新方法。 Java 8 引入了與 IO 操作相關的另一項很好的附加特性,即 [**Base64**](https://en.wikipedia.org/wiki/Base64 "base64 wiki") 支持。 在這篇文章中,我們將學習它。 ## 什么是 Base64 編碼? 當您有一些二進制數據要通過網絡傳輸時,通常不這樣做,只是將數據以原始格式通過網絡轉換為比特流。 為什么? 因為某些媒體僅用于**流文本**。 這些協議可能會將您的二進制數據解釋為不是的控制字符。 `Base64`編碼將您的二進制數據轉換為 64 個可打印的`ASCII`字符。 通常,它是對電子郵件消息中的二進制數據和`"basic"` HTTP 身份驗證完成的。 這 64 個可打印字符是: * 26 個大寫字母`[A…Z]` * 26 個小寫字母`[a…z]` * 10 位數字`[0…9]` * 2 個符號([閱讀更多](https://en.wikipedia.org/wiki/Base64#Implementations_and_history "Base64 special characters")) 具有上述字符的編碼字符串可以安全地在支持文本數據的網絡上傳輸,而不必擔心由于控制字符的混亂而丟失數據。 ## Java 8 之前的 Base64 支持 多年來,java 通過非公共類(因此不可使用)`java.util.prefs.Base64`和未記錄的類`sun.misc.BASE64Encoder`為 Base64 提供了支持。 此類在公共領域中的信息也非常有限。 ## Java 8 對 Base64 的支持 Java 8 添加了一個用于 Base64 編碼和解碼目的的類,即[**`java.util.Base64`**](https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html "base64 java doc")。 我們將在下面的代碼示例中使用它。 #### 1)將字符串編碼為 Base64 這就像獲取編碼器實例并將字符串作為字節輸入以對其進行編碼一樣簡單。 ```java Base64.Encoder encoder = Base64.getEncoder(); String normalString = "username:password"; String encodedString = encoder.encodeToString( normalString.getBytes(StandardCharsets.UTF_8) ); Output: dXNlcm5hbWU6cGFzc3dvcmQ= ``` #### 2)解碼 base64 的編碼字符串 這也很簡單。 只需獲取`Base64.Decoder`的實例,并使用它來解碼以 base64 編碼的字符串。 ```java String encodedString = "dXNlcm5hbWU6cGFzc3dvcmQ="; Base64.Decoder decoder = Base64.getDecoder(); byte[] decodedByteArray = decoder.decode(encodedString); //Verify the decoded string System.out.println(new String(decodedByteArray)); Output: username:password ``` #### 3)包裝 base64 的編碼輸出流 如果您不想直接使用數據,而更喜歡使用流,則可以包裝輸出流,以使寫入此輸出流的所有數據都將自動以 base64 編碼。 ```java Path originalPath = Paths.get("c:/temp", "mail.txt"); Path targetPath = Paths.get("c:/temp", "encoded.txt"); Base64.Encoder mimeEncoder = Base64.getMimeEncoder(); try(OutputStream output = Files.newOutputStream(targetPath)){ //Copy the encoded file content to target file Files.copy(originalPath, mimeEncoder.wrap(output)); //Or simply use the encoded output stream OutputStream encodedStrem = mimeEncoder.wrap(output); } ``` 僅此而已。 這已經足夠簡單了。 **祝您學習愉快!**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看