将⽂件内容转化为byte数组返回如何将⽂件内容转化为byte数组并返回呢?对于这个问题,我献上我第⼀次成功的代码~
package com.succez.task1;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* <p>Copyright: Copyright (c) 2018</p>
* <p>succez</p>
* @author ZhangJinjin
* @createdate 2018年5⽉3⽇
*/
public class fileToBuf {
/**
* 将⽂件内容转换成byte数组返回,如果⽂件不存在或者读⼊错误返回null
*
* 这⾥需要在内存中创建⼀个字节数组缓冲区,将读取的⽂件字节数据写⼊到缓冲区中
* 最后将字节流转换成byte数组,并关闭资源
* 当出现⽂件不到异常和输⼊输出异常时需要捕获
*/
public static byte[] file2buf(File fobj){
byte[] buffer = null;
try{
if (!ists())
{
return null;
}
FileInputStream fis = new FileInputStream(fobj);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int len=-1;
while ((len = ad(b)) != -1)
{
bos.write(b, 0, len);
}
fis.close();
bos.close();
buffer = ByteArray();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return buffer;
}字符串数组怎么转成byte
/*
* 两个测试⽤例
* */
public static void main(String []args){
File fobj1 = new File("E:\\TestExample\\");
byte[] buffer1=fileToBuf.file2buf(fobj1);
System.out.println(buffer1);
File fobj2 = new File("E:\\TestExample\\test2.docx");
byte[] buffer2=fileToBuf.file2buf(fobj2);
System.out.println(buffer2);
}
}
结果如下:
仔细分析了⼀遍,我觉得挺好的,还怎么改,开玩笑!
流程再⾛⼀遍:
FileInputStream  从⽂件系统中的某个⽂件中获得输⼊字节,读取⽂本原始字节流。
ByteArrayOutputStream  此类实现了⼀个输出流,其中的数据被写⼊⼀个 byte 数组。缓冲区会随着数据的不断写⼊⽽⾃动增长。可使⽤ toByteArray() 和 toString() 获取数据。
⼀直读⼊数据,并且,将其写⼊到缓冲区中
利⽤toByteArray()⽅法转化为byte数组。
所以,没⽑病~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。