java从服务器下载文件?怎样通过java实现服务器上文件下载
大家好,今天来为大家解答java从服务器下载文件这个问题的一些问题点,包括怎样通过java实现服务器上文件下载也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
java FTP下载文件在代码中如何实现知道下载完成
你好,可以写个方法,这个方法返回一个boolean类型,只要返回true,就说明已经完成,
具体如下:一般get过程完成后,为出错就说明文件已经下载完成。
publicbooleandownloadFile(Stringhostname,intport,Stringusername,Stringpassword,StringremotePath,StringremoteFilename,StringsavePath){
longstart=System.currentTimeMillis();
log.info("开始登陆SSH服务器"+hostname);
try{
if(sftp==null||!sftp.isConnected())
sftp=login(hostname,port,username,password);
if(sftp!=null&&session.isConnected()&&channel!=null&&channel.isConnected()&&session!=null&&session.isConnected()){
log.info("登陆成功,开始转换到文件目录:"+remotePath);
if(remotePath!=null&&!remotePath.trim().equals(""))
{
sftp.cd(remotePath);
Filedir=newFile(savePath);
if(!dir.exists())
dir.mkdirs();
sftp.get(remoteFilename,savePath+remoteFilename);
log.info("成功从服务器上获取文件:"+remoteFilename+",耗时(秒):"+(System.currentTimeMillis()-start)/1000);
returntrue;
}
else
{
log.error("登陆失败:文件目录转换异常");
returnfalse;
}
}
else
{
log.error("登陆失败:连接=null");
returnfalse;
}
}catch(SftpExceptione){
log.error("接收文件"+remoteFilename+"时有SftpException异常【可能文件不存在】!");
returnfalse;
}
catch(Exceptionex)
{
log.error("接收文件"+remoteFilename+"时有Exception异常:"+ex.getMessage());
returnfalse;
}catch(Throwablet)
{
log.error("接收文件"+remoteFilename+"时有Throwable异常:"+t.getMessage());
returnfalse;
}finally
{
close();
}
}
怎样通过java实现服务器上文件下载
感觉楼上几位说的办法都是http协议,走的是jsp网站路线,也不失为一种可选的不错的办法.既然是jsp建站了,那也不妨再省事一些.http协议毕竟稳定性和速度较弱,改为websocket协议更佳.
再延伸一步,websocket协议对浏览器版本的要求太高,IE10以上才能带起来,怕你的浏览器版本达不到.可以换用Amf3协议,把jsp网页内植入一个flash小组件,让java和actionscript之间直接通信.
要么,抛开jsp站点不谈,只看底层的文件传输,就用tcp协议.你去服务器上弄个socketServer,你在本机弄个socket,两边对准了端口号,直接把文件抓下来算了.这个办法想必是最迎合你的提问的.你本来就是只想通过java语言传输,没考虑过弄jsp网站,没考虑过要牵扯到太多其它的语言,什么html, css, javascript, xml的.大家都知道,一旦建站,冒出来的语言就多了,就化简为繁了.
总起来说,不管怎么通信,走的皆是字节流,其实也就是字节数组byte[].把数组当作参数,从服务器端的socket写进去objectOutputStream.writeObject(array); objectOutputStream.flush();再从你本机的socket读出来objectInputStream.readObject();反正就是个txt记事本小文件,估计一瞬间就传完了,也不用在乎什么进度条了.
楼主试试看吧.
java web 怎么从服务器下载文件到客户端的指定位置
这个很简单啊,就是定义一个input file类型的,然后上传,获取上传的文件,用inputstream读取,然后用outputstream写入到你服务器的指定位置就行了。如果用struts来接收上传文件就简单了,只需要命名和jsp文件input file类型名称相同的字段就能获取上传文件了,file类型的。
/**新闻代表图片*/
private File newsPicture;//文件字段和jsp中文件name相同
private String newsPictureFileName;//文件名称,可以自动获取
private String newsPictureContentType;//文件类型,可以自动判断
//上传的共用方法,srcFile源文件,savePath保存的路径,fileName文件名称,你使用这个方法就可以上传了。
public static File uploadUtil(File srcFile,String savePath,String FileName){
InputStream is= null;
OutputStream os= null;
File toFile= null;
if(srcFile!=null){
try{
is= new FileInputStream(srcFile);
String fileName=(new Date().getTime())+FileName.substring(FileName.indexOf("."));
toFile= new File(ServletActionContext.getServletContext().getRealPath(savePath), fileName);
os= new FileOutputStream(toFile);
byte[] buffer= new byte[1024];
int length= 0;
while((length= is.read(buffer))> 0){
os.write(buffer, 0, length);
}
os.flush();
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}finally{
try{
is.close();
os.close();
} catch(IOException e){
e.printStackTrace();
}
}
}
return toFile;
}
java从服务器下载文件和怎样通过java实现服务器上文件下载的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!