import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 1、文件内容 ---通过程序转---》字节数组
* 文件输入流
* 字节数组输出流
*
* 2、字节数组 ---通过程序转---》 文件
* 字节数组输入流
* 文件输出流
* @author fanpengfei
*
*/
public class Test02 {
public static void main(String[] args) throws IOException {
byte[] data = getByte("/Users/fanpengfei/Documents/1.txt");
toByte(data, "/Users/fanpengfei/Documents/2.txt");
}
//字节数组 ---通过程序转---》 文件
public static void toByte(byte[] src,String destpath) throws IOException{
//创建源
//目的地
File dest = new File(destpath);
//选择流
//字节数组输入流
InputStream is = new BufferedInputStream(new ByteArrayInputStream(src));
//文件输出流
OutputStream os = new BufferedOutputStream(new FileOutputStream(dest));
//操作不断读取字节数组
byte[] flush = new byte[1024];
int len = 0;
while((len = is.read(flush)) != -1){
//写出字节数组流中
os.write(flush,0,len);
}
os.flush();
//获取数据
os.close();
is.close();
}
//文件内容 ---通过程序转---》字节数组
public static byte[] getByte(String srcPath) throws IOException{
//创建文件源
File src = new File(srcPath);
//创建字节数组的目的地
byte[] dest = null;
//选择流
//文件输入流
InputStream is = new BufferedInputStream(new FileInputStream(src));
//字节数组输出流不能使用多态
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//操作不断的读取文件,写出到字节数组流中
byte[] flush = new byte[1024];
int len = 0;
while((len = is.read(flush)) != -1){
//写出字节数组流中
bos.write(flush,0,len);
}
bos.flush();
//获取数据
dest = bos.toByteArray();
bos.close();
is.close();
return dest;
}
}
IO流第十二课,字节数组流与文件流对接
最新推荐文章于 2023-02-02 14:31:29 发布