今天做了个功能,需要上传文件并读取其中的文件内容,直接上代码。
注意有些环境需要设置正确的字符集
。
/**
* 将MultipartFile转换为File
* @param multiFile
* @return
*/
public static File multipartFileToFile(MultipartFile multiFile) {
// 获取文件名
String fileName = multiFile.getOriginalFilename();
// 获取文件后缀
String prefix = fileName.substring(fileName.lastIndexOf("."));
// 若须要防止生成的临时文件重复,能够在文件名后添加随机码
try {
File file = File.createTempFile(fileName, prefix);
multiFile.transferTo(file);
return file;
} catch (Exception e) {
log.error("MultipartFile转File失败",e);
}
return null;
}
/**
* 读取文件内容
* @param file
* @return
*/
private String getContent(File file){
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
try {
FileInputStream inputStream = new FileInputStream(file);
byte[] bt = new byte[1024 * 4];
int len = 0 ;
while( (len = inputStream.read(bt)) != -1){
// 去bom
if(bytes.size() == 0){
if (bt[0] == -17 && bt[1] == -69 && bt[2] == -65) {
byte[] tempByte = new byte[len - 3];
System.arraycopy(bt, 3, tempByte, 0, tempByte.length);
bytes.write(tempByte, 0, tempByte.length);
}else{
bytes.write(bt, 0, len);
}
}else{
bytes.write(bt, 0, len);
}
}
return bytes.toString(Constants.FILE_ENCODING);
} catch (FileNotFoundException e) {
log.error("读取文件内容异常!",e);
} catch (IOException e) {
log.error("读取文件内容异常!",e);
}
return "";
}
版权声明:本文为cainiaobulan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。