先讲下java append的用法
Stringbuffer 有append()方法,Stringbuffer其实是动态字符串数组,append()是往动态字符串数组添加字符串,类似于"xx"+"yy"的那个+号。
String1+String2 和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样
String1+String2 存在于不同的两个地址内存
Stringbuffer1.append(Stringbuffer2)放再一起
文件上传
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.springframework.web.multipart.MultipartFile;
/**
* 图片写入方法
* @param fileExtends 文件后缀
* @param file 文件
* @param flag 区分(0:用户logo;1:用户背景图)
* @return 文件路径
*/
public String writeFile(String fileExtends, MultipartFile file,String flag){
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下
StringBuffer savePath = new StringBuffer().append(this.getServletContext().getRealPath("/WEB-INF/upload"));
File dir = new File(savePath );
//判断上传文件的保存目录是否存在
if(!dir.exists()){
System.out.println(savePath+"目录不存在,需要创建");
//创建目录
dir.mkdirs();
}
if ("0".equals(flag)) {
//如果是用户logo,则图片以img.png结尾
savePath .append("/img.").append(fileExtends);
}else if ("1".equals(flag)){
//如果是用户背景图,则图片以bg.png结尾
savePath .append("/bg.").append(fileExtends);
}
try {
//上传流
byte[] bytes = file.getBytes();
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(path.toString())));
stream.write(bytes);
stream.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return savePath;
}
原文:http://my.oschina.net/u/2312022/blog/519026