java中如何把一个文件转化为byte数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何把一个文件转化为byte数组相关的知识,希望对你有一定的参考价值。
File file = new File("E:/girl.png");
我该如何把这个得到这个file的byte数组
java将文件转换为byte数组,主要是使用输出流,实例如下:
/*** 根据byte数组,生成文件
*/
public static void getFile(byte[] bfile, String filePath,String fileName)
BufferedOutputStream bos = null; //新建一个输出流
FileOutputStream fos = null; //w文件包装输出流
File file = null;
try
File dir = new File(filePath);
if(!dir.exists()&&dir.isDirectory())//判断文件目录是否存在
dir.mkdirs();
file = new File(filePath+"\\\\"+fileName); //新建一个file类
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos); //输出的byte文件
bos.write(bfile);
catch (Exception e)
e.printStackTrace();
finally
if (bos != null)
try
bos.close(); //关闭资源
catch (IOException e1)
e1.printStackTrace();
if (fos != null)
try
fos.close(); //关闭资源
catch (IOException e1)
e1.printStackTrace();
参考技术A import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Test
public static void main(String[] args)
// TODO Auto-generated method stub
try
getBytesFromFile(new File("C:\\aaa.txt"));
catch(IOException e)
System.out.println("IOException");
// 返回一个byte数组
public static byte[] getBytesFromFile(File file) throws IOException
InputStream is = new FileInputStream(file);
// 获取文件大小
long length = file.length();
if (length > Integer.MAX_VALUE)
// 文件太大,无法读取
throw new IOException("File is to large "+file.getName());
// 创建一个数据来保存文件数据
byte[] bytes = new byte[(int)length];
// 读取数据到byte数组中
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0)
offset += numRead;
// 确保所有数据均被读取
if (offset < bytes.length)
throw new IOException("Could not completely read file "+file.getName());
// Close the input stream and return bytes
is.close();
return bytes;
本回答被提问者和网友采纳 参考技术B /**
* 获得指定文件的byte数组
*/
public byte[] getBytes(String filePath)
byte[] buffer = null;
try
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1)
bos.write(b, 0, n);
fis.close();
bos.close();
buffer = bos.toByteArray();
catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
return buffer;
参考技术C 答非所问 真服气这种人
如何把一个byte数组转化为字符串
工具/原料
C# IDEA软件 java开发环境 电脑
方法/步骤
1、依次点击“文件--》新建--》项目”。
2、选择为:控制台应用程序。
3、确定后系统生成的代码。
4、测试2代码:把一个byte数组转换为一个字符串。
5、测试2结果byte数组成字符串成功。
参考技术A Java中byte数组转换成string字符串可以直接使用string类的构造函数。而string转byte数组,则可以使用string类型的getBytes()方法进行转换, 参考技术B Java中byte数组转换成string字符串可以直接使用string类的构造函数。而string转byte数组,则可以使用string类型的getBytes()方法进行转换,如下形式:1、string 转 byte[]
String str = "Hello";//声明一个字符串
byte[] srtbyte = str.getBytes();//使用string类的getBytes方法进行转换
2、byte[] 转 string
byte[] srtbyte;//声明一个byte字节数组
String res = new String(srtbyte);//使用构造函数转换成字符串
System.out.println(res);
也可以将byte转换的时候,设定编码方式相互转换,如下代码:
String str = "hello";
byte[] srtbyte = null;
try
srtbyte = str.getBytes("UTF-8");//设定转换的编码格式
String res = new String(srtbyte,"UTF-8");
System.out.println(res);
catch (UnsupportedEncodingException e) //有可能会出现不能支持的编码格式,捕捉异常。
e.printStackTrace();
本回答被提问者采纳
以上是关于java中如何把一个文件转化为byte数组的主要内容,如果未能解决你的问题,请参考以下文章