-
?
Java对接FTP服务器实现上传下载
FI
展开
概述
FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。FTP作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。本文就主要针对这两个操作来进行说明(当然,也包括FTP服务器的连接和登录等操作)。
环境搭建
系统环境:Windows 7(客户端与服务器均是)
服务器:自建FTP服务器(关于FTP服务器的搭建,本文不作说明。网上都有.)
开发环境:Jdk 1.8
引入第三方库:commons-net-2.2.jar(针对第一种方法)
一、基于第三方库FtpClient的FTP服务器数据传输
由于是基于第三方库,所以这里基本上没有太多要说明的东西。就是导入第三方库再调用即可,调用过程从下面的代码可以参见。为了便于文章的完整性,这也是给出其程序结构图吧。
FTP Client传输1.FTP的连接及登录
public static FtpClient connectFTP(String url, int port, String username, String password) {
//创建ftp
FtpClient ftp = null;
try {
//创建地址
SocketAddress addr = new InetSocketAddress(url, port);
//连接
ftp = FtpClient.create();
ftp.connect(addr);
//登陆
ftp.login(username, password.toCharArray());
ftp.setBinaryType();
} catch (FtpProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return ftp;
}
FTP上传2.上传文件到FTP服务器
public static void upload(String localFile, String ftpFile, FtpClient ftp) {
OutputStream os = null;
FileInputStream fis = null;
try {
// 将ftp文件加入输出流中。输出到ftp上
os = ftp.putFileStream(ftpFile);
File file = new File(localFile);
// 创建一个缓冲区
fis = new FileInputStream(file);
byte[] bytes = new byte[1024];
int c;
while((c = fis.read(bytes)) != -1){
os.write(bytes, 0, c);
}
System.out.println("upload success!!");
} catch (FtpProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(os!=null) {
os.close();
}
if(fis!=null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.从FTP服务器下载文件
public static void download(String localFile, String ftpFile, FtpClient ftp) {
InputStream is = null;
FileOutputStream fos = null;
try {
// 获取ftp上的文件
is = ftp.getFileStream(ftpFile);
File file = new File(localFile);
byte[] bytes = new byte[1024];
int i;
fos = new FileOutputStream(file);
while((i = is.read(bytes)) != -1){
fos.write(bytes, 0, i);
}
System.out.println("download success!!");
} catch (FtpProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(fos!=null) {
fos.close();
}
if(is!=null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
FTP下载文件 -
?
java实现批量视频下载
Odele
展开
1,看看我们封装的方法
方法中有三个参数:视频url,文件夹路径,视频名称。
调用方法进行下载。
2,看看结果
打印结果文件夹下的视频下载成功最后:注意选择文件路径的时候一定要选择一个存在的文件夹,因为我没有写判断文件夹的代码。如果有不足之处望各位大神指教。
-
?
Javaweb练手项目以及下载
卜广缘
展开
我经常看有人发帖问关于项目点子的事,也看到了很多回帖,我自己也回了一些常见的项目。不过我觉得只列出三两个是远远不够的,因此就收集并这个项目列表,大家要找简单的编程项目学习练手的话,可以收藏并扩散本文。这些项目并不是论文级别的,只是想抛砖引玉让大家能从中受些启发。
1,电子商城项目
采用了Struts、spring、hibernate,数据库使用了MySQL。
2,CRM客户关系管理系统
没有使用框架,采用了jsp、Servlet,数据库使用了Oracle。
3,投票管理系统
采用了Struts、spring、hibernate,数据库使用了MySQL,这个新增了国际化,即中英文切换。
4,权限管理系统
采用了spring、springMVC,MyBatis,数据库采用了MySQL,权限处理采用了Shiro框架,并且整合了Redis。想要学习练习Redis和Shiro的这个应该是个不错的选择,运行前要安装Redis环境。
5,CRM建站系统
采用了spring、springMVC,MyBatis。一个比较完善的建站系统,后台管理,布局,权限控制做的都比较好,很适合学习。
6,语音识别
这个不能算是web项目,但是比较新奇,我也列出来了,运行后出现控制台界面,语音识别转换成文字,识别度不算太高,但也算不错的学习项目。
获取方式:
添加:个人Q3300863615
加我Q有以下几个要求:
1、面对目前流行的技术不知从何下手,需要突破技术瓶颈的。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽
拿高薪的。
3、如果没有工作经验,在校大学生,基础不行扎实,对java工作机制,常用设计
思想,常用java开发框架掌握熟练的。
4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在
技术领域继续突破的。
需要请加:个人Q3300863615备注好信息!
6.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面学习
-
?
Java JDK下载、安装和验证
边缘人
展开
1、JDK下载地址:
http://oracle/technetwork/java/javase/downloads/index.html,点开链接看到如下图所示的界面:
2、点击上图中箭头所指的地方,此时你需要根据你的电脑系统来进行对应的版本进行选择,在选择版本和下载之前你需要首先接收协议,勾选“Accept License Agreement”。
3、双击以后进行JDK的安装,安装界面如下图所示:
4、JDK安装完成后,需要进行环境变量的配置,右键“我的电脑”—>“属性”—>“高级系统设置”就会看到下面的界面:
5、点击上图中的环境变量,然后开始环境变量的配置:
(1)、点击系统变量下面的新建按钮,变量名JAVA_HOME(代表你的JDK安装路径),值对应的是你的JDK的安装路径。
(2)、继续在系统变量里面新建一个CLASSPATH变量,其变量值如下图所示:
此处需要注意:最前面有一个英文状态下的小圆点.,很多初学者在配置环境变量的时候就会跌倒在这个坑里。
(3)、在系统变量里面找一个变量名是PATH的变量,需要在它的值域里面追加一段如下的代码:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
此时你应该在你原有的值域后面追加,记得在原有的值域后面记得添加一个英文状态下的分号。
(4)、最后点击确定,此时JDK的环境变量配置就完成了。
6、测试配置的环境变量是否正确
(1)、WINDOWS+R键,输入cmd,进入命令行界面,如下所示:
(2)、输入java -version命令,可以出现如下图的提示,你可以看你安装的JDK版本。
(3)、输入javac命令可以出现如下的提示:
(4)、 输入java命令就会出现如下图所示的结果 :
-
?
Java 下载zip文件
的就是
展开
选中文件打zip包下载
前台:文件列表,选中文件,传文件ID集合传到后台
后台:
//接受到文件ID集合,查询出文件urlList
ListattachFileList = bookService.findAttachFileList(ids);
ListstrFiles = new ArrayList();
for(AttachFile attachFile : attachFileList){
strFiles.add(attachFile.getAttachFileUrl());
}
//调用打包工具类进行下载
ZipUtil.ZipFiles(getRequest(), getResponse(), strFiles, UUID.randomUUID().toString()+".zip");
直接下载zip包 zipUtil也有
/////////////////////////////////zipUtil ↓↓↓ ////////////////////
package com.jk.book.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class ZipUtil {
/**
* 把文件打成压缩包并保存在本地硬盘
*
* @param srcfile
* @param zipPath
*/
public static void ZipFiles(Listsrcfiles, String zipPath) {
byte[] buf = new byte[4096];
ZipOutputStream out = null;
try {
// 创建zip输出流
out = new ZipOutputStream(new FileOutputStream(zipPath));
// 循环将源文件列表添加到zip文件中
for (int i = 0; i < srcfiles.size(); i++) {
File file = new File(srcfiles.get(i));
FileInputStream in = new FileInputStream(file);
String fileName = file.getName();
// 将文件名作为zip的Entry存入zip文件中
out.putNextEntry(new ZipEntry(fileName));
int len;
while ( (len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
}
}
catch (IOException e) {
e.printStackTrace();
} finally {
if (null != out) {
try {
out.close();
out = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 把文件打成压缩包并输出到客户端浏览器中
*
* @param request
* @param response
* @param srcFiles
* @param downloadZipFileName
*/
public static void ZipFiles(HttpServletRequest request, HttpServletResponse response, ListsrcFiles, String downloadZipFileName) {
byte[] buf = new byte[4096];
try {
// Create the ZIP file
// ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipPath));
ZipOutputStream out = new ZipOutputStream(response.getOutputStream());//--设置成这样可以不用保存在本地,再输出, 通过response流输出,直接输出到客户端浏览器中。
// Compress the files
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {
downloadZipFileName = new String(downloadZipFileName.getBytes("GB2312"),"ISO-8859-1");
} else {
// 对文件名进行编码处理中文问题
downloadZipFileName = java.URLEncoder.encode(downloadZipFileName, "UTF-8");// 处理中文文件名的问题
downloadZipFileName = new String(downloadZipFileName.getBytes("UTF-8"), "GBK");// 处理中文文件名的问题
}
response.reset(); // 重点突出
response.setCharacterEncoding("UTF-8"); // 重点突出
response.setContentType("application/x-msdownload");// 不同类型的文件对应不同的MIME类型 // 重点突出
// inline在浏览器中直接显示,不提示用户下载
// attachment弹出对话框,提示用户进行下载保存本地
// 默认为inline方式
response.setHeader("Content-Disposition", "attachment;filename="+downloadZipFileName);
for (int i = 0; i < srcFiles.size(); i++) {
File file = new File(srcFiles.get(i));
FileInputStream in = new FileInputStream(file);
// Add ZIP entry to output stream.
String fileName = file.getName();
out.putNextEntry(new ZipEntry(fileName));
// Transfer bytes from the file to the ZIP file
int len;
while ( (len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
// Complete the entry
out.closeEntry();
in.close();
}
// Complete the ZIP file
out.close();
System.out.println("压缩完成.");
}
catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ListsrcFiles = new ArrayList();
srcFiles.add("c:/codetemplates.xml");
srcFiles.add("d:/t1.png");
ZipFiles(srcFiles, "c:/mm.zip");
}
}
-
?
大神整理的 30 张快速学习 Java 的思维导图,附高清版下载!
巫世平
展开
小编这几天在网上收集了 30 张大佬制作的 Java 知识点总结的思维导图,整理成了这篇文章分享给大家,帮助大家梳理构建 Java 的知识体系。
这份思维导图包含从Java的简介、主要特性、发展历史到语法、数据类型、修饰符、运算符、类、数组、框架、面向对象的编程思想等大大小小的知识点。一方面可供初学者参考,另一方面,便于大家结合思维导图深入学习、理解、思考;建议大家可以先收藏下,慢慢看;
本文按顺序依次展示以下内容的思维导图:
1、Java 简介
2、Java 主要特性
3、Java 发展历史
4、Java 开发环境配置
5、Java 基础语法
6、Java 基本概念
7、Java 面对对象 A
8、Java 面对对象 B
9、Java 面对对象 C
10、Java 基本数据类型 A
11、Java 基本数据类型 B
12、Java 变量类型
13、Java 修饰符
14、Java 运算符 A
15、Java 运算符 B
16、Java 循环结构
17、Java 分支结构
18、Java Number & Math 类
19、Java String类
20、Java StringBuffer 和 StringBuilder 类
21、Java数组
22、Java 日期时间
23、Java流(Stream)、文件(File)和IO
24、Java 异常处理
25、Java 集合框架
26、Java 泛型
27、Java 序列化
28、Java 网络编程
29、Java 多线程
30、Java 新特性
-
?
跟我学java编程—Java开发工具eclipse的下载及运行
渲染
展开
俗话说,工欲善其事,必先利其器。前面我们用命令行窗口开发Java程序,有诸多不便,Java关键字不能以不同的颜色显示,代码结构不清晰,编译和调试也非常麻烦。从本章开始,Java编程将使用eclipse开发工具,eclipse完全免费,而且免安装,是java开发人员的必备平台。
下载eclipse
(1)eclipse需要从eclipse官网下载,eclipse下载地址http://eclipse.org/downloads/,在浏览器地址栏中输入“http://eclipse.org/downloads/”,单击“回车键(Enter)”,进入eclipse下载地址页,界面如下图所示:
图 10-8 eclipse下载页面(2)单击下载页面中的“Download Packages”按钮,见上图红色箭头指示的位置,进入eclipse下载列表页,根据自己的系统选择32位还是64位的,点击相应链接下载(可能会弹出一个需要你付费的页面,并不是eclipse需要付费,这只是请求你捐钱的,无需理会)。如下图所示:
图 10-9 eclipse下载列表页(3)下载完成后,解压安装包,解压路径随意,进入eclipse解压后的目录,找到eclipse.exe文件,双击运行,如果弹出下面的对话框,则本机安装JDK(JVM)版本与eclipse版本不符,需要安装与eclipse版本相符的JDK。如下图所示:
图 10-10 eclipse运行错误提示上图给出的提示是说本机已安装的JVM(JDK)Version1.7.0_13版本不适合eclipse当前版本,eclipse当前版本需要JVM(JDK)1.8版本。
运行eclipse
启动eclipse,初次运行eclipse,eclipse会弹出工作目录设置对话框,新建的Java项目都会存储到该工作目录。将工作目录设置为“d:\java”或者任意其它目录。
图 10-11 eclipse工作目录设置对话框工作目录设置完成,单击“Launch”按钮,进入eclipse欢迎界面。如下图所示:
图 10-12 eclipse欢迎界面注意:
eclipse目前并没有中文版,因此eclipse所有的项目名称,以及路径最好都设置为英文路径,避免后期导致不必要的麻烦。
■ 知识点拨
eclipse下载及安装非常简单,下载压缩文件包,解压到指定目录下就可以,注意指定的解压目录不要包含中文路径。在解压目录下找到eclipse.exe即可启动eclipse。如果已安装的JDK版本不满足eclipse对JDK版本要求的话,eclipse在启动过程中,会弹出对话框提示JDK版本不符合要求,可以按照提示安装要求的JDK版本,安装新的JDK版本后,只需把JDK配置环境变量JAVA_HOME修改为新安装JDK的路径即可。
■ 思考与练习
请按照教材内容给出的步骤,下载及运行eclipse开发工具。
-
?
2018最新Java学习路线图(附视频下载地址)
Qiang
展开
不可否认,这是一个程序员的时代。2017年,IT互联网更是首次超过金融,成为收入最高的行业。
Java作为IT技术行业的老大哥,人才需求数量一直非常大,工资也给得高。
Java是王牌IT培训机构尚硅谷教育的王牌学科,这个Java学习路线图是他们2018年最新修订的,从零基础到有工作经验的Java软件工程师都非常有参考价值。此次还特别为百度网友提供了Java视频教程下载链接,看到的朋友,可以说是赚到了。
视频下载地址:尚硅谷官网http://atguigu/download.shtml
-
?
简易交互式课件的制作
无烟
展开
恰当使用交互式课件能激发学生兴趣,增加教学效果,提高教学效率.对交互式课件的认识:交互式课件是一种具有互动性质的多媒体课件 ,是可以操作互动的。在这些新的理念下引入新的教学手段——课件,无疑需要它能体现出互动的功能。说得简单点,从教师的角度去看,就是要体现教师能够控制课件的演示,能够以教师的意愿来呈现信息。到目前,这一点我们是完全能够做到的。但是这很快就不能满足我们教与学的需要,特别是在与学生的互动过程中,配合就不是那么完美了,甚至显得机械,呆板。如何让课件在整个教学的互动过程中能够灵活地、恰当地配合我们呢?那就是注重设计课件的交互性功能,特别地要做到能根据学生学习的实际情况,学生的思维反应等学生的一切活动来呈现学习内容等信息。
交互性课件的交互性通常表现在:内容分阶段呈现:教师或学生根据自己的教学或学习进度,可以随时暂停信息的呈现或调整信息呈现的顺序。即时反应:在问题查询、答案对照等学习活动中能无延时地得到反馈,获得正确的信息。……
简易交互课件制作常用软件和方法
PPT中触发器实现交互
PPT中控件和VBA实现交互
互动电影的制作
Quiz creactor创建交互练习
一、利用PPT制作交互课件,
PowerPoint课件中交互功能的实现方法有超链接、动作按钮、触发器、ActiveX控件和VBA等
二、互动电影的制作
优芽互动电影是一款免费动画制作工具。内置上百种人物场景,搭配智能语音,同时搭载了图像、文本、表格单据、动画模板等多种制作素材,我们可以通过自定义编辑轻松制作百变创意课程动画。
三、交互式练习
交互式练习是交互式课件制作过程中不可缺少的内容。而交互式练习的制作通常需要一定的编程基础,用ASP、JAVA、flash等语言编写,而对于普通的非计算机专业教师来说,没有太多的精力和时间去学习复杂的编程。
QuizCreator是一个强大的制作工具,它简单易用,功能强大,支持可视化快速开发,普通老师利用它可以在没有编程基础的情况下,轻松的制作出基于flash的交互式的试题和测试并能进行在线测评。
除上述介绍的软件之外,开发交互型多媒体课件的工具还有 Authorware、 Flash、 Articulate Storyline 2等。
-
?
java学习:如何从官网下载eclipse
托尔尼奥
展开
以前学习javaee的时候都是用myeclipse,但是myeclipse并不是免费的,所以最近从官网上下载了企业中用的比效多eclipse。
方法/步骤
1
首先百度搜索eclipse,在搜索的结果展示列表中选择eclipse官网。
2
然后点击如图所示的右上方的下载按钮。
3
之后在新出现的界面中点击所图所示的Download Packages
会有更多的选择。
4
然后就跟据自己的需要选择版本,比如我的电脑64位系统,而且主要用于javaee的开发,就选择如图所示的版本。
5
然后在新界面中选择Download.
6
然后点击如图所示的click here。
7
最后会跳出下载的的框,选择下载就可以了。
如果你对于学习Java整个流程有任何的问题,可以随时来咨询我,学习方法,学习路线,系统学习规划,希望可以帮助大家少走弯路。
java课件ppt
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
初入新手村 — 演示者视图的操作步骤 0102
-
初入新手村 — 鼠标的交互的方法 0103
-
初入新手村 — 如何快速访问工具栏 0104
-
初入新手村 — 文件选项卡、保存等基础 0105
-
第二关 :内容整理与处理 — 导航区操作技巧 0201
-
第三关 :文字工具与段落 — 如何给你的文字加特效 0301
-
文字工具与段落— 段落工具使用 0302
-
第四关:绘图与形状效果 — 基本形状的绘制方法 0401
-
绘图与形状效果 — 给你的图形加特效 0402
-
绘图与形状效果 — 快速排列多种图形 0403
-
第五关:合并形状与图标 — 用好合并形状轻松获得更多创意图形 0501
-
第六关:图片的神奇 — 教你PPT如何实现抠图 0601
-
图片的神奇 — 使用图片裁剪让图片为你所用 0602
-
第七关:表格与逻辑图表 — 教你画一个简洁大方的表格 0701
-
表格与逻辑图表 — SmartArt快速生成逻辑图表 0702
-
表格与逻辑图表 — 一招SmartArt走遍天下 0703
-
第八关:形象化市场数据 — PPT中数据图表怎么做?0801
-
形象化市场数据 — 教你做好看的条形图和柱状图 0802
-
形象化市场数据 — 饼图的美化技巧 0803
-
第十关:终成商务演示高手
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101
-
第一关 :初入新手村 — 工具选项卡操作演示 0101