导航:首页 > 编程语言 > javaio下载

javaio下载

发布时间:2022-04-22 05:46:01

‘壹’ 通过java实现文件下载

在jsp/servlet中断点/多线程下载文件
<%@ page import="java.io.File" %><%@ page import="java.io.IOException" %><%@ page import="java.io.OutputStream" %><%@ page import="java.io.RandomAccessFile" %><%! public void downloadFile(HttpServletRequest request, HttpServletResponse response, File file) throws IOException { RandomAccessFile raf = new RandomAccessFile(file, "r"); java.io.FileInputStream fis = new java.io.FileInputStream(raf.getFD()); response.setHeader("Server", "www.trydone.com"); response.setHeader("Accept-Ranges", "bytes"); long pos = 0; long len; len = raf.length(); if (request.getHeader("Range") != null) { response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); pos = Long.parseLong(request.getHeader("Range") .replaceAll("bytes=", "") .replaceAll("-", "") ); } response.setHeader("Content-Length", Long.toString(len - pos)); if (pos != 0) { response.setHeader("Content-Range", new StringBuffer() .append("bytes ") .append(pos) .append("-") .append(Long.toString(len - 1)) .append("/") .append(len) .toString() ); } response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", new StringBuffer() .append("attachment;filename=\"") .append(file.getName()) .append("\"").toString()); raf.seek(pos); byte[] b = new byte[2048]; int i; OutputStream outs = response.getOutputStream(); while ((i = raf.read(b)) != -1) { outs.write(b, 0, i); } raf.close(); fis.close(); }%><% String filePath = request.getParameter("file"); filePath = application.getRealPath(filePath); File file = new File(filePath); downloadFile(request, response, file);%>
是否可以解决您的问题?

‘贰’ java io重要吗

io怎么不重要?
如果你真的打算做程序员,在以后的工作中,你编程肯定涉及到IO操作。
简单点,你开发一个网站,如果提供用户上传下载文件的,有IO操作吧。
其次,与数据库打交道,说白了也是IO来的。只是封装好了

‘叁’ java io 的上传下载 要详细代码 有注释

下载文件
下载文件指的是把服务器端的文件发送到客户端,Servlet可以向客户端发送任意格式的文件。
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
OutputStream out;//输出响应正文的输出流
InputStream in;//读取本地文件的输入流

String filename = req.getParameter("filename");

if(filename == null) {
out = resp.getOutputStream();
out.write("Please input filename".getBytes());
out.close();
return;
}
//获得本地输入流
in = getServletContext().getResourceAsStream("/store/" + filename);
int length = in.available();
//设置响应正文的MIME类型
resp.setContentType("application/force-download");
resp.setHeader("Content-length", String.valueOf(length));
resp.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\" ");
//把本地文件发送给客户端
out = resp.getOutputStream();
int byteRead = 0;
byte[] buffer = new byte[512];
while((byteRead = in.read(buffer)) != -1) {
out.write(buffer, 0, byteRead);
}
in.close();
out.close();
}

文件上传
上传文件是要把客户端文件上传到服务器。当客户端向服务器端上传文件时,客户端发送的HTTP请求正文采用"multipart/form-data"数据类型。
不管HTTP请求正文为何种数据类型,Servlet容器都会把HTTP请求包装成一个HttpServletRequest对象。当请求正文为"multipart/form-data"数据类型时,Servlet直接从HttpServletRequest对象解析出复合表单的每个子部分仍然是一个非常复杂的工作。
为了简化对"multipart/form-data"数据的处理过程,可以利用Apache开源软件组织提供的两个软件包来实现上传。
Fileupload软件包commons-fileupload-1.2.1.jar
Io软件包commons-io-1.4.jar
Servlet主要利用fileupload软件包中的接口和类来实现文件上传,而fileupload软件包本身依赖于io软件包。

如果觉得可以,再把上传的代码发给你

‘肆’ 关于url类下载文件问题,抛异常: java.io.FileNotFoundException: 帮忙解决一下,谢谢!!

输出流如果文件不存在,会自动生成。而输入流则不会,而且会报FileNotFoundException ,你检查一下你文件路径是否正确。

‘伍’ java 常用的什么lang,io等包在哪里下载

你把java环境配上就有了

‘陆’ java文件下载的问题

循环是个死循环

‘柒’ 我在一个页面下载文件时出现了这个提示:java.io.IOException: 系统资源不足,无法完成请求的服务。

readBytes()说明你的内存设置的小了,

‘捌’ 使用java的io流下载了一个网页,但是打开时出现乱码,求助!

你用java的IO读写的时候,记得设置参数里面的编码为下载网页的编码,要一致

‘玖’ java 下载一个文件问什么提示这个文件夹拒绝访问,路径没错,权限没错就是简单的IO流读取的

java用输入输出流读取文件的时候应该没有关闭输入输出流,这样的话文件就会一直被占用, 重启后肯定就可以再次访问了。 一般java中io操作:
InputStream is = null;
try{
一些io操作
}catch(){}finally{
is.close();
}

‘拾’ java项目如何制作下载的部分用io的话怎么选则保存位置

有个servlet下载文件的例子,看看对你有没有帮助。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

/**
*用于下载文件的servlet
*@vesion 1.0
*/
public class DownloadFile extends HttpServlet {
//字符编码
private final String ENCODING="GB2312";
//内容类型
private final String CONTENT_TYPE="text/html;charset=GB2312";
//要下载的文件存放的路径
private String downloadFileDir="download\\";

/**
*执行HTTP get操作
* @param req 从用户来的请求
* @param resp servlet的回应
*/
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
//设置request对象的字符编码
request.setCharacterEncoding(ENCODING);
//从request 中取出要下载文件的名字
String fileName=request.getParameter("filename");
if(fileName==null || fileName.trim().equals("")){
//设置response对象ContentType
response.setContentType(CONTENT_TYPE);
//输出错误信息
PrintWriter out=response.getWriter();
out.println("<font color=red>输入的文件名无效!</font>");
out.close();
}
else{
//下载文件的完整路径名
String fullFileName=downloadFileDir+fileName;
System.out.println("下载文件:"+fullFileName);
//根据文件的类型设置response对象ContentType
String contentType =getServletContext().getMimeType(fullFileName);
if(contentType==null)
contentType="application/octet-stream";
response.setContentType(contentType);
response.setHeader("content-disposition","attachment;filename=\""+fileName+"\"");
InputStream is=null;
OutputStream os=null;
try{
is=new BufferedInputStream(new FileInputStream(fullFileName));
//定义输出字节流
java.io.ByteArrayOutputStream baos=new ByteArrayOutputStream();
//定义response的输出流
os =new BufferedOutputStream(response.getOutputStream());
//定义buffer
byte[] buffer=new byte[4*1024];//4k Buffer
int read =0;
//从文件中读入数据并写到输出字节流中
while ((read=is.read(buffer))!=-1){
baos.write(buffer,0,read);
}
//将输出字节流写到response的输出流中
os.write(baos.toByteArray());
}
catch (IOException e){
e.printStackTrace();
}
finally{
//关闭输出字节流和response输出流
os.close();
is.close();
}
}

}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
//调用doGet方法
doGet(req,resp);
}

}

阅读全文

与javaio下载相关的资料

热点内容
数控铣床法兰克子程序编程 浏览:173
linux打包命令targz 浏览:996
抖音app是哪个 浏览:407
苹果app怎么上架 浏览:255
NA服务器地址 浏览:427
我的世界如何初始化服务器 浏览:97
哪个手机app天气预报最准 浏览:752
怎样把视频压缩至25m 浏览:570
vivox27文件夹怎么改变 浏览:727
新手玩狼人杀用什么app 浏览:615
pdf在线查看 浏览:954
安卓tv90如何关闭后台 浏览:683
php读取word乱码 浏览:755
minicom源码 浏览:1001
海尔冷柜压缩机 浏览:416
联通服务器如何调试信号 浏览:136
stata新命令 浏览:941
单调栈算法python 浏览:606
微信解压游戏怎么下载 浏览:962
忍三服务器不同如何登上账号 浏览:822