一、File类
import java.io.*;
public class NumberFormatDmeo
{
public static void main(String[] args)throws Exception{
File f=new File("f:"+File.separator+"test.txt");//没有该文件的话会自动创造
OutputStream out=new FileOutputStream(f);//输出
String str="Hello World!!!";
byte[] b=str.getBytes(); //把str的内容保存到byte[]数组中
for(int i=0;i<b.length;i++){
out.write(b[i]); //用OutputStream把byte[]的内容输出。
}
}
}
二、字节流的输入输出
InputStream:字节流的输入(把文件从外面输入到程序)
OutputStream:字节流的输出(从程序输出到外面的文件)
三、字符流的输出输入
字符输入流:Writer
字符输入流:Reader
四、字符流字节流相互的转换
OutputStreamWriter 字符流–>字节流
InputStreamReader 字符流–>字节流
五、运用例子:
1.文件(图片为例子)上传
jsp页面代码:
<form id="form1" action="add/submitQuestion" method="post" enctype="multipart/form-data">
<input type="file" name="files" value=""/>
<input type="file" name="files" value=""/>
<input type="file" name="files" value=""/>
</form>
后台Controller层代码:
@RequestMapping("/add/submitQuestion")
public String submitQuestion(@RequestParam("files") CommonsMultipartFile[] files) throws Exception{
String picUrl = "";
for(int i=0;i<files.length;i++){
if(!"".equals( files[i].getOriginalFilename() )){
//拿到上传文件的输入流
InputStream in=(InputStream)files[i].getInputStream();
String fileName =files[i].getOriginalFilename();
//获取图片最后三位
String subStr = fileName.substring(fileName.length() -3, fileName.length());
//把输入流转换为二进制
byte[] b = submit.toByte(in);
....代码未完,关键代码已经列出。
还可参考:完整的代码参考
2.图片显示
页面直接用标签
jsp页面:
<img src="/showPic?info_files='+arr[i]+'"/>
后台代码:
@RequestMapping("/showPic")
public void showPic(@RequestParam("info_files") String info_files,HttpServletRequest request,HttpServletResponse response) throws Exception{
if(info_files != null && !"".equals(info_files)){
.....
//获取图片输入流,一定要获取输入流InputStream后放到byte[]数组使用OutputStream输出
List<InputStream> list = pic.showPic(info_files);
for(int i=0;i<list.size();i++){
InputStream fis= list.get(i);
response.setContentType("image/*");
ServletOutputStream os=response.getOutputStream();
int count = 0;
byte[] buffer = new byte[fis.available()];
while ( (count = fis.read(buffer)) != -1 ){
os.write(buffer, 0, count);
os.flush();
}
os.flush();
os.close();
}
}