##问题
从数据库获取数据,按文件规范写入txt,上传到固定的ftp服务器
平台每日统计全省各地市区县的纳管设备数量,并将统计结果以文件形式,上传至固定的FTP服务器
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 燕_青 2022-04-14 16:42关注
查询数据,生产TXT文件的就不提了,上传至ftp的可以看下这个
private FTPClient ftp;
/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/
private boolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(addr,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}/** * @author * @class ItemFtp * @title upload * @Description : * @time 2013 2013-11-27 * @return void * @exception :(Error note) * @param file 上传的文件或文件夹 * @param path 上传的文件的路径 * @throws Exception */ private void upload(File file , String path) throws Exception{ System.out.println( " file.isDirectory() : " + file.isDirectory() ); if(file.isDirectory()){ ftp.makeDirectory(file.getName()); ftp.changeWorkingDirectory(file.getName()); String[] files = file.list(); for (int i = 0; i < files.length; i++) { File file1 = new File(file.getPath()+"\\"+files[i] ); if(file1.isDirectory()){ upload(file1 , path ); ftp.changeToParentDirectory(); }else{ File file2 = new File(file.getPath()+"\\"+files[i]); FileInputStream input = new FileInputStream(file2); ftp.storeFile(file2.getName(), input); input.close(); } } }else{ File file2 = new File(file.getPath()); System.out.println( " file.getPath() : " + file.getPath() + " | file2.getName() : " + file2.getName() ); InputStream input = new FileInputStream(file2); ftp.changeWorkingDirectory(path); ftp.storeFile(file2.getName(), input); FTPFile[] ftpfiles = ftp.listFiles(); System.err.println("ftp文件"+ftpfiles.length); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(FTPFile f:ftpfiles){ if(!f.isDirectory()){ String time = sdf.format(new Date(f.getTimestamp().getTimeInMillis()+8*60*60*1000)); System.out.println("文件:"+f.getName()+"的上传时间:"+time); } } input.close(); //关闭输入流 ftp.logout(); //退出连接 } } /** * @author * @class ItemFtp * @title download * @Description : FPT 下载文件方法 * @time 2013 2013-11-27 * @return void * @exception :(Error note) * @param reomvepath 下载的文件的路径 * @param fileName 下载的文件名 * @param localPath 下载的文件本地路径 * @throws Exception */ private void download(String reomvepath , String fileName , String localPath ) throws Exception{ ftp.changeWorkingDirectory(reomvepath); // 列出该目录下所有文件 FTPFile[] fs = ftp.listFiles(); // 遍历所有文件,找到指定的文件 for (FTPFile ff : fs) { if (ff.getName().equals(fileName)) { // 根据绝对路径初始化文件 File localFile = new File(localPath + "/" + ff.getName()); // 输出流 OutputStream is = new FileOutputStream(localFile); // 下载文件 ftp.retrieveFile(ff.getName(), is); System.out.println("下载成功!"); is.close(); } } ftp.logout(); //退出连接 } public static void main(String[] args) throws Exception{ FtpTest t = new FtpTest(); boolean lianjie = t.connect("/upload", "IP", 21, "ftp用户名", "密码"); System.out.println( "连接 :" + lianjie ); //上传 File file = new File("e:\\test1.txt"); t.upload(file , "/upload"); //下载 // t.download("/ftp/upload", "PublicCMS.rar", "E:\\db"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求指导ADS低噪放设计
- ¥15 CARSIM前车变道设置
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存