读取,下载,linux服务器上的 文件
来源:互联网 发布:网络招打字员是真的吗 编辑:程序博客网 时间:2024/04/30 23:23
首先 要从linux服务器上下载文件的话,第一步:就是通过ftp链接服务器。第二步:才是下载你所需要的内容。
好了知道了 步骤 我们就开始吧
我的需求是从linux服务器中 获取 某个文件夹 目录下 的 图片名称 。
一、通过 ftp 链接 linux服务器
package ftp;import java.io.DataInputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import sun.net.TelnetInputStream;import sun.net.TelnetOutputStream;import sun.net.ftp.FtpClient;public class FtpUtil {private static FtpClient ftpClient=null;/** * connectServer * 连接ftp服务器 * @throws java.io.IOException * @param path 文件夹,空代表根目录 O * @param password 密码 * @param user 登陆用户 * @param server 服务器地址 */ public void connectServer(String server, String user, String password, String path) throws IOException { // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 ftpClient = new FtpClient(); ftpClient.openServer(server); ftpClient.login(user, password); //path是ftp服务下主目录的子目录 if (path.length() != 0) ftpClient.cd(path); //用2进制上传、下载 ftpClient.binary(); }/** * 取得某个目录下的所有文件列表 * */ public List getFileList(String path) { List list = new ArrayList(); try { DataInputStream dis = new DataInputStream(ftpClient.nameList(path)); String filename = ""; while((filename=dis.readLine())!=null) { list.add(filename); }} catch (Exception e) { e.printStackTrace(); } return list; }/** * upload * 上传文件 * @throws java.lang.Exception * @return -1 文件不存在 * -2 文件内容为空 * >0 成功上传,返回文件的大小 * @param newname 上传后的新文件名 * @param filename 上传的文件 */ public long upload(String filename,String newname) throws Exception { long result = 0; TelnetOutputStream os = null; FileInputStream is = null; try { java.io.File file_in = new java.io.File(filename); if (!file_in.exists()) return -1; if (file_in.length()==0) return -2; os = ftpClient.put(newname); result = file_in.length(); is = new FileInputStream(file_in); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } } finally { if (is != null) { is.close(); } if (os != null) { os.close(); } } return result; } /** * upload * @throws java.lang.Exception * @return * @param filename */ public long upload(String filename) throws Exception { String newname = ""; if (filename.indexOf("/")>-1) { newname = filename.substring(filename.lastIndexOf("/")+1); }else { newname = filename; } return upload(filename,newname); } /** * download * 从ftp下载文件到本地 * @throws java.lang.Exception * @return * @param newfilename 本地生成的文件名 * @param filename 服务器上的文件名 */ public long download(String filename,String newfilename)throws Exception { long result = 0; TelnetInputStream is = null; FileOutputStream os = null; try { is = ftpClient.get(filename); java.io.File outfile = new java.io.File(newfilename); //创建一个 file对象 , 前面的限定符是包路径os = new FileOutputStream(outfile); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); //将 is.read(bytes) 个字节从指定 byte 数组写入此文件输出流中。result = result + c; } } catch (IOException e) { e.printStackTrace(); } finally { if (is != null) { is.close(); } if (os != null) { os.close(); } } return result; } /** * closeServer * 断开与ftp服务器的链接 * @throws java.io.IOException */ public void closeServer() throws IOException { try { if (ftpClient != null) { ftpClient.closeServer(); } } catch (IOException e) { e.printStackTrace(); }}public static void main(String [] args) throws Exception { FtpUtil ftp = new FtpUtil(); try { //连接ftp服务器 /home/sunshinan/bdpic/10000ftp.connectServer("服务器ip", "服务器账号", "服务器密码", "需要的文件夹路径(直接写路径,不需要加ip因为这相当于已经链接上了服务器)"); /** 上传文件到 info2 文件夹下 */ //System.out.println("filesize:"+ftp.upload("f:/download/Install.exe")+"字节"); /** 取得info2文件夹下的所有文件列表,并下载到 E盘下 */ List list = ftp.getFileList("."); for (int i=0;i<list.size();i++) { String filename = (String)list.get(i); //long a = ftp.download(filename,"E:/cy_mailfile/"+filename); System.out.println(filename);} } catch (Exception e) { e.printStackTrace(); }finally { ftp.closeServer(); } } }
我相信大家一定能看懂这段代码:注视已经写好,
需要注意的是:注意你访问的linux文件的 权限,如果权限不允许 读取或者下载,你一样不能操作。
0 0
- 读取,下载,linux服务器上的 文件
- python 读取Linux服务器上的文件
- SecureCRT下载Linux服务器上的文件
- Python通过paramiko远程下载Linux服务器上的文件
- 下载服务器上的文件的jsp
- 从FTP服务器下载文件部署更新linux服务器上的服务
- java HttpURLConnection下载服务器上的文件
- Flex 下载服务器上的文件
- php下载服务器上的文件
- Flex 下载服务器上的文件
- java下载服务器上的文件
- 通过url下载服务器上的文件
- js 下载服务器上的文件
- 在Linux平台上的Ftp服务器上通过命令行下载文件
- web端下载服务器上的文件,js方法下载
- 在Windows中如何下载Linux的tftp服务器上的文件
- Linux上的大文件如何读取
- 通过SecureCRT下载远程Linux服务器上的文件到本地Windows
- 使用内核数据结构:红黑树 rbtree
- poj 2391Ombrophobic Bovines 【蛮简单的网络流】
- mysql数据库迁移
- 一个final引发的的血案(java基础系列)
- 黑马——OC基础(1)
- 读取,下载,linux服务器上的 文件
- http长连接和短连接
- iOS中block简介-作用域
- 数学之美系列八:贾里尼克的故事和现代语言处理
- CI 输入类input
- ios 真机调试遇到的错误: ld: symbol(s) not found for architecture arm64的解决办法
- 黑马程序员-Object C之NSArray
- 怎么能9天,那连,以示靥
- 《Javascript_Dom 编程艺术》(第2版)读书笔记