public static void main(String[] args) {
try{
List<String> list = new ArrayList<>();
list.add("爱");
list.add("我");
list.add("中");
list.add("华");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
IOUtils.writeLines(list,IOUtils.LINE_SEPARATOR, byteArrayOutputStream, StandardCharsets.UTF_8);
MultipartFile multipartFile =
new OssMultipartFile("log.txt", ".txt", byteArrayOutputStream.toByteArray());
}catch (Exception e){
e.printStackTrace();
}
}
OssMultipartFile是自己写的
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.springframework.util.Assert;
import org.springframework.util.Base64Utils;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import com.hbis.ttie.oss.util.FileUtils;
/***
* 文件传输用
*/
public class OssMultipartFile implements MultipartFile {
private final String name = "file";
private String originalFilename;
private String contentType;
private final byte[] content;
public OssMultipartFile(File file) {
Assert.notNull(file, "File must not be null");
this.originalFilename = file.getName();
this.contentType = FileUtils.getContentType(file);
this.content = FileUtils.toByteArray(file);
}
public OssMultipartFile(String filename, String contentType, byte[] bytes) {
this.originalFilename = filename;
this.contentType = contentType;
this.content = bytes;
}
public OssMultipartFile(String filename, String contentType, String base64str) {
this.originalFilename = filename;
this.contentType = contentType;
this.content = Base64Utils.decodeFromString(base64str);
}
@Override
public String getName() {
return this.name;
}
@Override
public String getOriginalFilename() {
return this.originalFilename;
}
@Override
public String getContentType() {
return this.contentType;
}
@Override
public boolean isEmpty() {
return (this.content.length == 0);
}
@Override
public long getSize() {
return this.content.length;
}
@Override
public byte[] getBytes() throws IOException {
return this.content;
}
@Override
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(this.content);
}
@Override
public void transferTo(File dest) throws IOException, IllegalStateException {
FileCopyUtils.copy(this.content, dest);
}
}
import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import javax.activation.FileTypeMap;
import javax.activation.MimetypesFileTypeMap;
import org.springframework.util.FileCopyUtils;
import com.hbis.ttie.base.exception.ServiceException;
/***
* 文件工具类
*/
public class FileUtils {
private static final FileTypeMap fileTypeMap = new MimetypesFileTypeMap();
/**
* 获得文件类型
*/
public static String getContentType(File file) {
return fileTypeMap.getContentType(file);
}
/**
* 获得文件内容
*/
public static byte[] toByteArray(File file) {
byte[] bytes = null;
try {
bytes = FileCopyUtils.copyToByteArray(file);
} catch (IOException e) {
throw new ServiceException("E060011", "读取文件错误");
}
return bytes;
}
/**
* 获得输入流内容
*/
public static byte[] toByteArray(InputStream is) {
byte[] bytes = null;
try (BufferedInputStream fis = new BufferedInputStream(is)) {
bytes = FileCopyUtils.copyToByteArray(fis);
} catch (IOException e) {
throw new ServiceException("E060012", "读取输入流错误");
}
return bytes;
}
}