工具类:
package io.renren.modules.job.utils;
import java.io.*;
public class ByteToFile {
/**
* 根据byte数组,生成文件
*/
public static void getFile(byte[] bfile, String filePath,String fileName,String suffix) {
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+suffix);
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();
}
}
}
}
/**
* 获得指定文件的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;
}
}
测试调用:
package io.renren.zzrl_2019.controller;
import io.renren.common.utils.R;
import io.renren.modules.job.utils.ByteToFile;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.*;
@Controller
@RequestMapping("/wechatdocking")
public class WechatDockingController {
@Value("${zzrlfile.catalogs}")
private String catalogs; // 磁盘盘符
@RequestMapping("/ByteToFile")
@ResponseBody
public R ByteToFile(byte[] bfile,String filename,Integer sqid){
//文件地址
String filePath="C:/Users/lenovo/Desktop/sqlServer游标循环.txt";
//截取后缀
String suffix=filePath.substring(filePath.lastIndexOf("."));
//截取名称
filename=filePath.substring(filePath.lastIndexOf("/"),filePath.lastIndexOf("."));
System.out.println(filename);
ByteToFile.getFile(ByteToFile.getBytes(filePath),catalogs,filename,suffix);
return R.ok("成功");
}
}