FileInputStream 转base64编码
时间: 2023-08-25 19:05:00 浏览: 143
FileInputStream可以通过读取文件的字节流,将文件内容转换为Base64编码。在Java中,可以使用BASE64Encoder类的encode方法将字节数组转换为Base64编码的字符串。以下是一个示例代码:
```java
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Base64;
public class Main {
public static void main(String\[\] args) {
try {
FileInputStream fis = new FileInputStream("path/to/file.jpg");
byte\[\] fileBytes = new byte\[fis.available()\];
fis.read(fileBytes);
fis.close();
String base64EncodedString = Base64.getEncoder().encodeToString(fileBytes);
System.out.println("Base64 encoded string: " + base64EncodedString);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先创建一个FileInputStream对象来读取文件的字节流。然后,我们使用available方法获取文件的字节数组大小,并创建一个对应大小的字节数组。接下来,我们使用read方法将文件的字节流读取到字节数组中。最后,我们使用Base64类的getEncoder方法获取Base64编码器,并使用encodeToString方法将字节数组转换为Base64编码的字符串。输出结果即为转换后的Base64编码字符串。
请注意,这个示例中使用的是Java 8中的Base64类。如果你使用的是旧版本的Java,可以使用sun.misc.BASE64Encoder类来进行相同的操作。但是需要注意的是,sun.misc.BASE64Encoder类不是官方支持的API,可能在未来的Java版本中被移除。因此,建议使用Java 8中的Base64类进行Base64编码的操作。
#### 引用[.reference_title]
- *1* [BASE64Encoder和FileInputStream配合应用](https://blog.csdn.net/zhanwuguo8346/article/details/118559067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [安卓本地图片文件InputStream转换为Base64编码字符](https://blog.csdn.net/WiLL_XS/article/details/114583421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文