java下载文件,java下载文件到浏览器

http://www.itjxue.com  2023-01-07 15:41  来源:未知  点击次数: 

Java 下载文件的方法怎么写

参考下面

public HttpServletResponse download(String path, HttpServletResponse response) {

try {

// path是指欲下载的文件的路径。

File file = new File(path);

// 取得文件名。

String filename = file.getName();

// 取得文件的后缀名。

String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

// 以流的形式下载文件。

InputStream fis = new BufferedInputStream(new FileInputStream(path));

byte[] buffer = new byte[fis.available()];

fis.read(buffer);

fis.close();

// 清空response

response.reset();

// 设置response的Header

response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));

response.addHeader("Content-Length", "" + file.length());

OutputStream toClient = new BufferedOutputStream(response.getOutputStream());

response.setContentType("application/octet-stream");

toClient.write(buffer);

toClient.flush();

toClient.close();

} catch (IOException ex) {

ex.printStackTrace();

}

return response;

}

// 下载本地文件

public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {

String fileName = "Operator.doc".toString(); // 文件的默认保存名

// 读到流中

InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径

// 设置输出的格式

response.reset();

response.setContentType("bin");

response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

// 循环取出流中的数据

byte[] b = new byte[100];

int len;

try {

while ((len = inStream.read(b)) 0)

response.getOutputStream().write(b, 0, len);

inStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

// 下载网络文件

public void downloadNet(HttpServletResponse response) throws MalformedURLException {

int bytesum = 0;

int byteread = 0;

URL url = new URL("windine.blogdriver.com/logo.gif");

try {

URLConnection conn = url.openConnection();

InputStream inStream = conn.getInputStream();

FileOutputStream fs = new FileOutputStream("c:/abc.gif");

byte[] buffer = new byte[1204];

int length;

while ((byteread = inStream.read(buffer)) != -1) {

bytesum += byteread;

System.out.println(bytesum);

fs.write(buffer, 0, byteread);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

//支持在线打开文件的一种方式

public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {

File f = new File(filePath);

if (!f.exists()) {

response.sendError(404, "File not found!");

return;

}

BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));

byte[] buf = new byte[1024];

int len = 0;

response.reset(); // 非常重要

if (isOnLine) { // 在线打开方式

URL u = new URL("" + filePath);

response.setContentType(u.openConnection().getContentType());

response.setHeader("Content-Disposition", "inline; filename=" + f.getName());

// 文件名应该编码成UTF-8

} else { // 纯下载方式

response.setContentType("application/x-msdownload");

response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());

}

OutputStream out = response.getOutputStream();

while ((len = br.read(buf)) 0)

out.write(buf, 0, len);

br.close();

out.close();

}

java文件下载为什么不能下载pdf

java文件下载不能下载pdf的原因:

1、电脑没装阅读器。

2、文件加密了。

3、对应的下载工具不支持。

4、Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。

Java如何利用url下载MP3保存到本地?

Java如何利用url下载MP3保存的方法:

1 /** ;

2 ?? ? * TODO 下载文件到本地 ;

3 ? ? ?* @author nadim ?;

4 ?? ? * @date Sep 11, 2015 11:45:31 AM ;

5 ?? ? * @param fileUrl 远程地址 ;

6 ?? ? * @param fileLocal 本地路径 ;

7 ?? ? * @throws Exception ;

8 ? ? ?*/ ;

9 ? ? public void downloadFile(String fileUrl,String fileLocal) throws Exception {;

10 ? ? ? ? URL url = new URL(fileUrl);

11 ? ? ? ? HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();

12 ? ? ? ? urlCon.setConnectTimeout(6000);

13 ? ? ? ? urlCon.setReadTimeout(6000);

14 ? ? ? ? int code = urlCon.getResponseCode();

15 ? ? ? ? if (code != HttpURLConnection.HTTP_OK) {

16 ? ? ? ? ? ? throw new Exception("文件读取失败");

17 ?? ? ? ?} ? ? ?

18 ? ? ? ? //读文件流;

19 ? ? ? ?DataInputStream in = new DataInputStream(urlCon.getInputStream());

20 ? ? ? ? DataOutputStream out = new DataOutputStream(new FileOutputStream(fileLocal));

21 ? ? ? ? byte[] buffer = new byte[2048];

22 ? ? ? ? int count = 0;

23 ? ? ? ? while ((count = in.read(buffer)) 0) {;

24 ? ? ? ? ? ? out.write(buffer, 0, count);

25 ?? ? ? ?}

26 ?? ? ? ?out.close();

27 ?? ? ? ?in.close();

28 ? ? }。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

(责任编辑:IT教学网)

更多

推荐鼠标代码文章