将文件内容转化为byte数组返回

时间:2022-04-02 13:15:44

如何将文件内容转化为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 (!fobj.exists())
{
return null;
} FileInputStream fis = new FileInputStream(fobj);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int len=-1;
while ((len = fis.read(b)) != -1)
{
bos.write(b, 0, len);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return buffer;
} /*
* 两个测试用例
* */
public static void main(String []args){
File fobj1 = new File("E:\\TestExample\\test1.txt");
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);
}
}

结果如下:

将文件内容转化为byte数组返回

仔细分析了一遍,我觉得挺好的,还怎么改,开玩笑!


流程再走一遍:

FileInputStream  从文件系统中的某个文件中获得输入字节,读取文本原始字节流。

ByteArrayOutputStream  此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()toString() 获取数据。

将文件内容转化为byte数组返回

一直读入数据,并且,将其写入到缓冲区中

将文件内容转化为byte数组返回

利用toByteArray()方法转化为byte数组。

      

所以,没毛病~

将文件内容转化为byte数组返回的更多相关文章

  1. 代码实现&colon;定义一个文件输入流&comma;调用read&lpar;byte&lbrack;&rsqb; b&rpar;方法&comma;将a&period;txt文件中的内容打印出来&lpar;byte数组大小限制为5&rpar;

    package com.loaderman.test; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; im ...

  2. 把文件类型转化为byte&lbrack;&rsqb;

    转自:https://blog.csdn.net/xinxiqi/article/details/78899159 package com.sanqing.util; import java.io.B ...

  3. Redis入门 – Jedis存储Java对象 - &lpar;Java序列化为byte数组方式&rpar;

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  4. 将文件File转换成byte数组

    代码如下: /** * 将文件转换成byte数组 * @param filePath * @return */ public static byte[] File2byte(File tradeFil ...

  5. 十六进制字符串转化为byte数组

    工作上有这样的需求之前找了好多都不行,好不容易有个可以的赶紧留下来. 原址:http://blog.163.com/roadwalker@126/blog/static/113561841201013 ...

  6. C&num; 数据类型转化为byte数组

    short数据与byte数组互转 public byte[] ShortToByte(short value) { return BitConverter.GetBytes(value); } pub ...

  7. java中InputStream转化为byte&lbrack;&rsqb;数组

    //org.apache.commons.io.IOUtils.toByteArray已经有实现 String filePath = "D:\\aaa.txt"; in = new ...

  8. 将几张图片合并为一张图片,返回byte数组

    需求:通过url数组下载图片,再竖直合成一张新的图片,具体java代码如下 1 /** 2 * 竖直合并图片 3 * 4 * @param urls 5 * @return 6 */ 7 public ...

  9. Byte数组和字符串相互转换的问题

    第一:需求:将文件转成byte数组,之后转成字符串返回.过滤器接收到响应内容后,需要将响应的内容转成byte数组. 第二:我刚开始的做法: Controller:byteArr = Conversio ...

随机推荐

  1. 根据对象的某一属性进行排序的js代码(如:name&comma;age)

    var data = [{ name: "jiang", age: 22 }, { name: "AAAAAAAAAAAAAA", age: 21 }, { n ...

  2. &period;NET开发的大型网站列表、各大公司&period;NET职位精选,C&num;王者归来

    简洁.优雅.高效的C#语言,神一样的C#创始人Anders Hejlsberg,async/await编译器级异步语法,N年前就有的lambda表达式,.NET Native媲美C++的原生编译性能, ...

  3. Snapchat

    "Mesaging service Snapchat reportedly turned down a $3 billion offer from Facebook?!" Ever ...

  4. (转)Linux&lpar;Centos&rpar;之安装Java JDK及注意事项

    场景:天下事有难易乎?为之,则难者亦易矣:不为,则易者亦难矣.人之为学有难易乎?学之,则难者亦易矣:不学,则易者亦难矣. 1 准备工作 下面配置jdk的方式在具有root权限时候能够执行.如果没有ro ...

  5. HDU4310HERO贪心问题

    问题描述 When playing DotA with god-like rivals and pig-like team members, you have to face an embarrass ...

  6. Linux下高效指令

    Linux管理磁盘 资本指令 查看当前磁盘使用情况:df -h fdisk -l (查看所有的硬盘) 服务器添加硬盘:在系统设置添加 分区: fdisk /dev/sdb (sdb, sdc, sde ...

  7. 如何彻底删除mysql

    MySQL的卸载确实很让人头疼,很多时候都无法彻底卸载干净,这样会导致我们无法重新安装新的MySQL. 下面介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL ...

  8. Mybatis &num;和&dollar;

    在mybatis的mapper文件中,对于传递的参数我们一般是使用#和$来获取参数值. 当使用#时变量是占位符,就是一般我们使用java jdbc的PrepareStatement时的占位符?,所有可 ...

  9. WIN10刚开机任务管理显示CPU占用100&percnt;问题

    针对WIN10更新后出现的问题!!! 现象: 电脑刚开机,直接打开任务管理器,CPU占用100%! 但是电脑运行速度正常,按道理这时候应该卡死!(排除病毒) 下载鲁大师查看只是显示CPU 3%!而网上 ...

  10. &lbrack;Oracle&rsqb;如何观察Table 的各种Lock 之间的冲突

    [Oracle]如何观察Table 的各种Lock 之间的冲突 举例: Session#15 创建表: SID 15==============create table t1 (c1 number)p ...