`
forai
  • 浏览: 100806 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

Java 文件和byte数组转换

 
阅读更多
 
public class T3 {

	public static void main(String[] args){
		String filePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src\\1.docx";
		String outFilePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src";
		String outFileName = "2.docx";
		
		getFile(getBytes(filePath),outFilePath,outFileName);
	}

	/**
	 * 获得指定文件的byte数组
	 */
	public static byte[] getBytes(String filePath){
		byte[] buffer = null;
		try {
			File file = new File(filePath);
			FileInputStream fis = new FileInputStream(file);
			ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
			byte[] b = new byte[1000];
			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;
	}

	/**
	 * 根据byte数组,生成文件
	 */
	public static void getFile(byte[] bfile, String filePath,String fileName) {
		BufferedOutputStream bos = null;
		FileOutputStream fos = null;
		File file = null;
		try {
			File dir = new File(filePath);
			if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在
				dir.mkdirs();
			}
			file = new File(filePath+"\\"+fileName);
			fos = new FileOutputStream(file);
			bos = new BufferedOutputStream(fos);
			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();
				}
			}
		}
	}
}
 
分享到:
评论
4 楼 cs556644 2016-06-16  
有个小bug
如果outFilePath的文件夹不存的话,运行程序会提示
java.io.FileNotFoundException: E:\fileUpload\111111111111111111\111233\333\1.jpg (系统找不到指定的路径。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at com.hundsun.data.exchange.client.Test.getFile(Test.java:59)
at com.hundsun.data.exchange.client.Test.main(Test.java:17)

解决方法:
把43行 if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在 
改为  if(!dir.exists()){//判断文件目录是否存在 
即可
3 楼 m331006 2013-07-25  
hanmiao 写道
你的 getBytes()方法中,如果文件的长度超过1000個字节,可否正常工作呢?

肯定可以啊。1000只是缓冲区。
2 楼 我命属木 2013-03-20  
请问生成文件文件有乱码,怎么解决?
1 楼 hanmiao 2013-01-15  
你的 getBytes()方法中,如果文件的长度超过1000個字节,可否正常工作呢?

相关推荐

    byte数组转换工具类 byte数组转int,byte数组转short,short转byte数组

    byte数组操作的工具类,支持byte数组转int,int转byte数组,byte数组转short,short转byte数组。。。 下载的人多了,csdn会自动涨分,现在可以手动调了,我给降到最低了

    java基本类型与byte数组互相转换.pdf

    Java 基本类型与 byte 数组互相转换 Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本...Java 基本类型与 byte 数组之间的转换需要使用位操作符和与操作符将高位和低位截断成 byte 类型。

    java中两个byte数组实现合并的示例

    本文将深入探讨如何在Java中实现两个`byte`数组的合并,以及一些相关的操作,如数组反转和加密。 首先,我们来看一下标题和描述中提到的示例代码。这个简单的函数`addBytes`接收两个`byte`类型的数组`data1`和`data...

    Java byte数组与其他类型转换

    总的来说,Java中byte数组与其他基本类型之间的转换是通过位移和按位操作来完成的,这允许程序员在处理二进制数据时灵活地进行字节序列的解析和构造。了解并熟练掌握这些转换方法,对于处理涉及二进制数据的Java程序...

    Java将图片转换为byte数组例子总结

    #### 三、将byte数组转换回图片的方法 **方法名称**:`bytesToImage` **参数**: - `byte[] bytes`:表示包含图像数据的字节数组。 **返回值**:`Image` 表示转换后的图像对象。 **实现逻辑**: 1. **创建图像**...

    java实现的字节数组转换成基本类型,基本类型转换成byte[]

    char short int long float double 转换成byte数组

    java基本类型与byte数组互相转换.doc

    由于Java基本类型和byte数组都是基本的数据结构,因此在Java编程中经常需要将基本类型转换为byte数组,或者将byte数组转换为基本类型。 在上面的代码中,我们可以看到将Java基本类型转换为byte数组的多个方法,每个...

    Java数值类型与byte数组相互转换

    Java bytes数组与基本类型的相互转换 Int -&gt; Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -&gt; Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...

    java中把对象转化为byte数组的方法.doc

    java中把对象转化为byte数组的方法 Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 ...

    java整数与byte数组的转换实现代码

    2. 数据存储:在数据存储中,我们需要将整数转换为byte数组,以便于存储在数据库或文件中。 3. 加密解密:在加密解密中,我们需要将整数转换为byte数组,以便于进行加密或解密操作。 Java整数与byte数组的转换是...

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...

    转换Image数据为byte数组

    与之相对,将字节数组转换回`Image`对象的过程则较为直接: 1. **创建图像对象**:使用`Toolkit.getDefaultToolkit().createImage()`方法,直接将字节数组作为参数传递,即可创建出相应的`Image`对象。 2. **预...

    Java-byte数组转换成16进制字符串

    Java-byte数组转换成16进制字符串

    java基本类型与byte数组互相转换

    Byte数组转换为Short值 最后,`byte`数组也可以转换回相应的基本类型。例如,将2字节的`byte`数组转换为`short`值: ```java public static short byteArrToShort(byte[] b) { byte[] a = new byte[2]; int i =...

    float转byte数组测试小工具

    本工具“float转byte数组测试小工具”专注于将浮点数(float)转换为字节数组,这是一种在计算机内存中表示和传输数值的常用方式。在Java、C++、C#等编程语言中,这种转换尤其重要,因为它们使用不同的数据结构来...

    String(含Hex)与Byte数组互相转换[代码]

    在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...

    java byte相互转换详解左右位移

    在从byte数组转换回int时,我们使用左移操作和按位或操作(OR)。例如,`int i=0; i+=((b[0]&0xff));` 这里首先将byte转为int并保留其字节值,然后左移24位,将字节放到int的最高位字节处。对于后续的每个字节,都...

    java基本类型与byte数组互相转换文.pdf

    "Java 基本类型与 byte 数组互相转换" Java 是一种面向对象的编程语言,具有强大而灵活的数据类型系统。 Java 中的基本类型包括 boolean、byte、char、short、int、long、float 和 double 等。这些基本类型可以相互...

    Java中3DES加密解密示例(封装byte数组16进制互转)

    在 Java 中,我们可以使用 byte 数组来表示二进制数据,而 16 进制字符串是将 byte 数组转换为字符串的形式。在本示例中,我们提供了两个方法来实现 byte 数组和 16 进制字符串之间的互转。 在 byte2Hex 方法中,...

    手机移动开发将byte数组写入文件的JAVA代码

    ### 手机移动开发将byte数组写入文件的JAVA代码详解 #### 一、知识点概述 在移动开发领域,特别是Android或J2ME等平台上,经常需要处理数据的读写操作,比如将从网络获取的数据保存到本地文件系统中。本篇文章主要...

Global site tag (gtag.js) - Google Analytics