首先你要安装svn客户端,安装完成以后你右键选择svn中的import,输入你服务器端代码的地址,下载路径什么的自己配置,其他不用管,点击OK就可以了,不过你要有read权限才行。
❷ java 从服务器下载文件并保存到本地
进行从文件服务器下载文件到本地的具体步骤如下:
首先,客户端发起一个URL请求,获取连接对象。
接着,服务器解析URL,将指定资源返回一个输入流给客户端。
然后,建立存储目录并确定保存文件名。
之后,开始输出写入数据。
最后,关闭输入流与输出流。
为简化此过程,可以创建下载工具类,如DownLoadUtil.java,便于调用。在action类中调用此工具类中的方法。以Struts2为例,先建立工具类,便于后续调用。在action类方法里调用工具类中的方法。在Struts.xml中配置action,指定方法为docDown,无需配置其他result和param。部分代码是根据他人修改而来,若有错误之处,欢迎指正。
❸ linux服务器上部署java项目,本地windos通过浏览器访问项目怎么下载项目目录下的文件到本
既然使用了java,实现这种功能就与OS无关了,否则叫什么跨平台。其实用浏览器下载服务器端文件比较容易:
首先,要让用户能找到并选择文件(jsp里实现,部分代码)
String realPath=request.getSession().getServletContext().getRealPath("")+"/documents";//项目根目录下文件路径
File fileDir=new File(realPath);
String[] fileList=fileDir.list();//返回目录下文件名称数组
for(int i=0;i<fileList.length;i++){
//这里遍历出来要显示的文件名,加到td里,后面再加上个“下载”按钮
//使用隐藏input记录文件名和路径fileName,filePath
}
其次,提交下载请求并下载
使用form提交用户选择的文件名,Action中部分代码:
String fileName=req.getParameter("fileName");//HttpServletRequest req
String filePath=req.getParameter("filePath");
try {
FileDownload.Download(filePath+"/"+fileName, "attachment", res);
} catch (Exception e) {
e.printStackTrace();
}
下面是 FileDownload类:
package com.aerolink.aocs.util.fileUtil;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
/**
* <p>
* Title: FileDownload类
* </p>
* <p>
* Description: 实现文件下载功能
* </p>
* <p>
* 将文件名,HttpServletRequest,HttpServletRespons传给静态方法Download即可
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: 北京天航信达信息技术有限公司
* </p>
*
* @author 陶源
* @version 2.0
*/
public class FileDownload {
/**
* @param fileName
* @param res
* @throws FileNotFoundException
* @throws IOException
*/
public static void Download(String fileName,
HttpServletResponse res)
throws FileNotFoundException, IOException {
String fileContentType = "application/octet-stream";
String fileDownloadType = "attachment";
long totalsize = 0;
// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入
File f = new File(fileName);
// 取文件长度
long filelength = f.length();
byte[] b = new byte[1024];
// 设置文件输出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);
int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");
// 设置相应头信息,让下载的文件显示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 确定长度
String filesize = Long.toString(filelength);
// 设置输出文件的长度
res.setHeader("Content-Length", filesize);
// 取得输出流
ServletOutputStream servletOut = res.getOutputStream();
// 发送文件数据,每次1024字节,最后一次单独计算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最后一次传送的字节数
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 读入字节数组
in.readFully(leftpart);
// 写入输出流
servletOut.write(leftpart);
} else {
// 读入1024个字节到字节数组 b
in.readFully(b);
// 写和输出流
servletOut.write(b);
}
}
servletOut.close();
}
/**
* @param fileName
* @param fileDownloadType
* @param res
* @throws FileNotFoundException
* @throws IOException
*/
public static void Download(String fileName, String fileDownloadType,
HttpServletResponse res)
throws FileNotFoundException, IOException {
String fileContentType = null;
if (fileName.endsWith(".doc")) {
fileContentType = "application/msword";
} else if (fileName.endsWith(".pdf")) {
fileContentType = "application/pdf";
} else if (fileName.endsWith(".xls")) {
fileContentType = "application/vnd-ms-excel";
} else if (fileName.endsWith(".txt")) {
fileContentType = "text/plain";
} else {
fileContentType = "application/octet-stream";
}
long totalsize = 0;
// 取得要传输的文件,实际应用是可以将文件路径以参数的形式传入
File f = new File(fileName);
// 取文件长度
long filelength = f.length();
byte[] b = new byte[1024];
// 设置文件输出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);
int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");
// 设置相应头信息,让下载的文件显示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 确定长度
String filesize = Long.toString(filelength);
// 设置输出文件的长度
res.setHeader("Content-Length", filesize);
// 取得输出流
ServletOutputStream servletOut = res.getOutputStream();
// 发送文件数据,每次1024字节,最后一次单独计算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最后一次传送的字节数
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 读入字节数组
in.readFully(leftpart);
// 写入输出流
servletOut.write(leftpart);
} else {
// 读入1024个字节到字节数组 b
in.readFully(b);
// 写和输出流
servletOut.write(b);
}
}
servletOut.close();
}
}
❹ 用java实现文件的上传与下载
1.下载简单,无非是把服务器上的文件或者数据库中的BLob(或其他二进制型),用流读出来,然后写到客户端即可,要注意 ContentType。
2.上传,可以用Apache Commons Upload等开源工具,或者自己写:
form要用enctype="multipart/form-data"
然后服务器端也是用IO把客户端提交的文件流读入,然后写到服务器的文件系统或者数据库里。不同的数据库对Lob字段操作可能有所不同,建议用Hibernate,JPA等成熟的ORM框架,可以不考虑数据库细节。
❺ java 如何下载文件
httpURLConnection conn;
conn.getInputStream;
再将这个stream 写到文件就可以了
❻ Java 利用url下载MP3保存到本地
//mp3Url MP3的URL
InputStream in=new URL(mp3Url).openConnection().getInputStream(); //创建来连接、输入流源
FileOutputStream f = nre FileOutputStream("c:\mmm.mp3");//创建文件输出流
byte [] bb=new byte[1024]; //接收缓存
int len;
while( (len=in.read(bb))>0){ //接收
f.write(bb, 0, len); //写入文件
}
f.close();
in.close();
基本框架,自己调试修改一下
❼ 用java实现文件的下载,如何提高下载速度(非web开发)
下面贴出的代码是一个简单的读取远程文件保存到本地的实现,至于提高下载速度你可以利用多线程,具体可参考最下面的那个网址——
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
public class DownloadTester {
public static void main(String[] args) throws IOException {
String urlStr = "http://img..com/img/logo-.gif";
String path = "D:/";
String name = urlStr.substring(urlStr.trim().lastIndexOf("/"));
URL url = new URL(urlStr);
InputStream in = url.openConnection().getInputStream();
File file = new File(path + name);
FileOutputStream out = new FileOutputStream(file, true);
int counter = 0;
int ch;
byte[] buffer = new byte[1024];
while ((ch = in.read(buffer)) != -1) {
out.write(buffer, 0, ch);
counter += ch;
System.out.println(counter + ":byte");
}
out.flush();
in.close();
out.close();
}
}