?? download.java
字號:
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Download extends HttpServlet {
File dir;
public Download() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
FileInputStream fis = null;
BufferedInputStream bis = null;
ServletOutputStream out = null;
try {
String fileName = "你好.txt";//getFileName(request);//要下載的文件名
File file = new File(dir, fileName);
response.setContentType("application/x-msdownload;");
//以下getBytes需要使用瀏覽器支持的編碼,這個編碼只能根據(jù)request.getLocale然后猜測一個值
fileName = new String(fileName.getBytes("gbk"),"iso8859-1");
response.setHeader("Content-disposition", "attachment; filename=\"" + fileName+"\"");//new String(fileName.getBytes("gbk"),"iso8859-1"));
fis = new FileInputStream(file); //讀入文件
out = response.getOutputStream();
out.flush();
bis = new BufferedInputStream(fis);
byte buffer[] = new byte[4096];
int len = 0;
while ( (len = bis.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.flush();
}
catch(Throwable e){
e.printStackTrace();
}
finally{
try{
fis.close();
out.close();
}
catch(Throwable e){
e.printStackTrace();
}
}
}
public void init() throws ServletException {
String root = this.getServletContext().getRealPath("/")+"temp";
dir = new File(root);
}
public static void main(String args[]){
Locale l = Locale.CHINESE;
System.out.println(l.toString());
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -