public class _3_21ByteArrayInputStream {
public static void main(String[] args) {
// FileInputStream是请求操作系统进行的
// 而ByteArray是虚拟机中的一块内存,GC管理,所以可以不需要关闭流
// 所有对象,包括数字都可以转成字节数组二进制,方便我们进行网络传送
// 字节数组不要过大
// byte[] datas = " eveything will be ok".getBytes(StandardCharsets.UTF_8);
// InputStream is = null;
// try {
// is = new ByteArrayInputStream(datas);
// byte[] flush = new byte[5];
// int len=-1;
// while((len=is.read(flush))!=-1){
// String str = new String(flush,0,flush.length);
// System.out.println(str);
// }
// }catch (IOException e){
// e.printStackTrace();
// }//没有close方法
// 保存的位置,模拟网络节点或者服务器中的某个节点的存储
// byte[] dest = null;
// ByteArrayOutputStream baos = null;
// baos = new ByteArrayOutputStream();
// String msg = "nanjing rain";
// byte[] data1 = msg.getBytes(StandardCharsets.UTF_8);
// baos.write(data1,0,data1.length);
// //获取数据
// dest = baos.toByteArray();
// System.out.println(new String(dest));
// try {
// baos.flush();
// } catch (IOException e) {
// e.printStackTrace();
// }
byte[] datas = fileToByteArray("src\\01.jpg");
System.out.println(datas.length);
// 1.图片读取到字节数组
public static byte[] fileToByteArray(String filename){
File file = new File(filename);
byte[] dest = null;
InputStream ism = null;
ByteArrayOutputStream baos = null;
try {
ism = new FileInputStream(file);
baos = new ByteArrayOutputStream();
// read的返回值int是字符的值
// int temp;
// while((temp = ism.read())!=-1){
// System.out.println((char)(temp));
// }
byte[] flush = new byte[1024*10]; //容器大小
int length = -1;//接收长度
while((length=ism.read(flush))!=-1){
baos.write(flush,0,length);
baos.flush();
dest = baos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(ism!=null){
ism.close();
} catch (IOException e) {
e.printStackTrace();
return dest;
// 2.字节数组到图片
public static void byteArrayToFile(byte[] datas,String filename){
File file = new File(filename);
InputStream is = null;
OutputStream osm = null;
is = new ByteArrayInputStream(datas);
osm = new FileOutputStream(file);
byte[] flush = new byte[1024];
int len=-1;
while((len=is.read(flush))!=-1){
osm.write(flush,0,len);
osm.flush();
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if(osm!=null){
osm.close();
} catch (IOException e) {
e.printStackTrace();
//InputSteam
转
byte
[]
数组
,网上写的会丢失数据。
byte
[] byt = new
byte
[1024]; try { Runtime rt = Runtime.getRuntime(); // 调用 调用mysql的安装目录的命令 Process child = rt .exec("F:\\mys...
ByteArray
InOutStream
一个
Java
类,允许从
ByteArray
OutputStream到
ByteArray
InputStream
的快速,简单的“
转
换”
## License此源代码(
ByteArray
InOutStream.
java
)是免费许可证。
这意味着您可以随意使用它,而无需询问作者。
InputStream
转
byte
[]其实直接使用IOUtils就可以了,但是需要注意的是,将
InputStream
粗暴地
转成
byte
[],只适用于
文件
较小的时候,当如果
文件
有好几个G,再这样
转
,内存就要溢出了。
Java
中将
inputstream
输入流
转
换成
byte
[]
字节
数组
Java
中的I/O机制都是基于数据流进行输入和输出的,将流
转
换成
字节
数组
保存下来是数据流传输必不可少的一部分。
转
换的代码如下(在具体场景下需要处理流的关闭问题):
public static
byte
[] toBy...
Java
InputStream
转
Byte
Array 和
Byte
Buffer
本文介绍如何实现
InputStream
转
Byte
Array 和
Byte
Buffer,首先使用
Java
原生方式,然后介绍Guava和Commons IO。
1.
转成
Byte
数组
首先,我们看如何从简单输入流中获取
字节
数组
。
字节
数组
重要特性是应用索引按照每八个bit位方式快速访问内存中的值,因此可以操作这些...
Java
中
byte
数组
与
InputStream
之间的
转
换2020-08-23 06:41:331、将File、File
InputStream
转
换为
byte
[]
数组
:File file = new File("file.txt");
InputStream
input = new File
InputStream
(file);
byte
[] byt = new
byte
[input.available(...
在commons-io包中org.apache.commons.io.IOUtils类的to
ByteArray
(
InputStream
input)已经有实现了,我们可以参考下思路,完成我们的方法,我们可以用类似下面的代码实现
inputStream
转
化为
byte
[]
数组
public static
byte
[] to
ByteArray
(
InputStream
input) throws IOEx
感觉不难,但用的时候一时半会写不出来,浪费时间,于是记录下来。 public static
byte
[] read(
InputStream
inputStream
) throws IOException {
try {
ByteArray
OutputStream baos = new
ByteArray
OutputStream();
1:
byte
[]
转
换为
InputStream
InputStream
sbs = new
ByteArray
InputStream
(
byte
[] buf);2:
InputStream
转
换为
InputStream
byte
[]
ByteArray
OutputStream swapStream = new
ByteArray
OutputStream();
byte
[] buff = new
byte
[...
byte
[] buffer=new
byte
[1024];
int len=0;
ByteArray
OutputStream bos=new
ByteArray
OutputStream();
while((len=is.read(buffer))!=-1){
bos.write