生成xml报文方法并输出
创建根节点
Element root= new Element("root");
//创建报文体
Element body = new Element("body");
//添加子节点并赋值
body.addContent(new Element("SEQ_NO").setText(""));
//获取已存在的节点并赋值(只能一层一层的获取)
body.getChild("SEQ_NO").getChild("SEQ_NO2").setText(""));;
//获取已存在的节点的值
String str=Message_Body.getChildText("EP_DEC_HEAD");
//根节点(报文)添加到文档中;
Document Doc = new Document(root);
//自定义报文名字
String FileName = "EMVS_EP_3120980024_"+hm.get("CONTR_NO")+"_"+BIZ_TYPE+"0_"+nowTime+".DEC";
//输出报文到项目WebRoot目录
Format format = Format.getPrettyFormat();
XMLOutputter XMLOut = new XMLOutputter(format);
//XMLOut..setEncoding("utf-8");Doc.setXMLEncoding("gb2312");
//获得WebRoot路径
// ServletConfig servletConfig=(ServletConfig).getServletContext().getAttribute("servletConfig");
String webRootPath=request.getSession().getServletContext().getRealPath("/");
String uploadPath="download\\dadan\\";
//uploadPath附加传入的路径,组成一个上传的完整路径
uploadPath=webRootPath+uploadPath;
XMLOut.output(Doc, new FileOutputStream(uploadPath+fileName));
//利用ftp发送文件到指定文件夹
File file = new File(uploadPath+fileName);
FTPFunc fTPFunc = new FTPFunc();
fTPFunc.connect("send");
fTPFunc.upload(file);
ftp连接,上传,下载工具类
package com.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import seastar.servlet.demand.Utils;
@SuppressWarnings("all")
public class FTPFunc {
private static FTPClient ftp;
/**
* 使用默认服务器和端口进行连接
* @param path 上传到ftp服务器哪个路径下
* @return
* @throws Exception
*/
public boolean connect(String path) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
String ftp_address = Utils.getProperty("ftp_address");
int ftp_port = Integer.parseInt(Utils.getProperty("ftp_port"));
String ftp_username = Utils.getProperty("ftp_username");
String ftp_password = Utils.getProperty("ftp_password");
ftp.connect(ftp_address,ftp_port); //测试环境FTP
ftp.login(ftp_username,ftp_password); //测试环境用户名密码
/*ftp.connect("10.10.123.**",21); //测试FTP地址
ftp.login("test","aaa@2468"); //测试FTP用户名密码
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}
/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 服务器的IP地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/
public 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);
ftp.enterLocalPassiveMode();
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}
/**
*
* @param file 上传的文件或文件夹
* @throws Exception
*/
public void upload(File file) throws Exception{
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);
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());
FileInputStream input = new FileInputStream(file2);
String aString = file2.getName();
ftp.storeFile(aString, input);
input.close();
}
}
/**
* 上传单个文件
* @param file 需要上传的文件
* @param changeFileName 是否需要变更文件的名称
* @return 返回FTP上文件的名称
* @throws Exception
*/
public String upload(File file, boolean changeFileName) throws Exception{
if(file.isFile()){
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
String saveFileName = file2.getName();
if(changeFileName)
{
//找到文件的扩展名
int ipos = saveFileName.indexOf(".");
String strExtName = saveFileName.substring(ipos,saveFileName.length());
//用新的文件名保存上传的文件
saveFileName = PBMeth.getTimeString()+strExtName;
ftp.storeFile(saveFileName, input);
}
else //否则用原有的文件名长传文件
{
if(file.exists()) //如果文件存在就返回2
{
return "1";
}
ftp.storeFile(saveFileName, input);
}
input.close();
return saveFileName;
}
else
{
return "0";
}
}
/**
*
* <p>删除ftp上的文件</p>
* @param srcFname
* @return true || false
*/
public boolean removeFile(String srcFname){
boolean flag = false;
if(ftp != null)
{
try
{
flag = ftp.deleteFile(srcFname);
}
catch (IOException e)
{
e.printStackTrace();
}
}
return flag;
}
/**
* 连接到FTP的方法
* @param addr 服务器的IP地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @param path FTP的目录
* @return
* @throws Exception
*/
public boolean getConnectionFTP(String addr,int port,String username,String password,String path,FTPClient ftp) throws Exception {
boolean result = false;
int reply;
try {
ftp.connect(addr,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return result;
}
//获得文件列表
public ArrayList<String> getFTPFileList(FTPClient ftp) {
ArrayList<String> fileNameList = new ArrayList<String>();
try {
FTPFile[] fs = ftp.listFiles();//获得文件列表
for (FTPFile file : fs) {
fileNameList.add(file.getName());//获得文件名称组成的list
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return fileNameList;
}
//是否成下载FTP文件到本地
public Boolean downloadFromFTP(String localPath,String fileName,FTPClient ftp) {
try {
File localFile = new File(localPath+fileName);
OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(fileName, is);//循环取得文件并写到指定本地路径
is.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
//删除指定名称的FTP上的文件
public Boolean deleteFromFTP(String path,String fileName,FTPClient ftp) {
boolean result = true;
try {
result = ftp.deleteFile(path+fileName);//删除FTP上的文件
} catch (Exception e) {
e.printStackTrace();
return false;
}
return result;
}
public void doConnectAndUpload(String string, File file) throws Exception{
FTPClient ftp1 = new FTPClient();
int reply;
ftp1.connect("120.55.192.123",21);
ftp1.login("administrator","Regs@2016");
/*ftp1.connect("61.152.176.30",21);
ftp1.login("EMVSXZGJ","EMVS123");*/
ftp1.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp1.enterLocalPassiveMode();
reply = ftp1.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp1.disconnect();
return;
}
//ftp1.changeWorkingDirectory(string);
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
String aString = file2.getName();
//ftp1.setControlEncoding("UTF-8");
boolean aa = ftp1.storeFile(new String(aString.getBytes("UTF-8"),"iso-8859-1"),input);//iso-8859-1
System.out.println(aa);
boolean a = ftp1.storeFile(aString, input);
System.out.println(a);
input.close();
ftp1.logout();
}
}
转载于:https://www.cnblogs.com/hmpcly/p/9516011.html
生成xml报文方法并输出相关推荐
- java生成报文_生成xml报文方法并输出
创建根节点 Element root= new Element("root"); //创建报文体 Element body = new Element("body&quo ...
- python读xml文件生成头文件_Python根据指定文件生成XML的方法
因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...
- python生成xml文件工具_Python根据指定文件生成XML的方法
因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...
- pythonxml格式化_使用Python生成XML的方法实例
本文实例讲述了使用Python生成XML的方法.分享给大家供大家参考,具体如下: 1. bookstore.py #encoding:utf-8 ''' 根据一个给定的XML Schema,使用DOM ...
- 用linq 生成xml的方法以及添加注释的方法
private void button15_Click(object sender, EventArgs e) {XElement myE = new XElement("书柜", ...
- php如何新建xml文件,PHP中的生成XML文件的4种方法分享
生成如下XML串 Xml代码 title1 content1 2009-10-11 title2 content2 2009-11-11 方法I.[直接生成字符串]使用纯粹的PHP代码生成字符串,并把 ...
- Jaxb对xml报文头的小修小改
前言: 也是在实际工作中, 借助jaxb来实现xml到java对象的映射转换. 在实际应用中, 也遇到了一些有趣好玩的东西, 权当记录下来. 本文主要讲解jaxb如何生成约定的xml报文头的实现思路, ...
- 利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...
- jaxb xsd生成xml_使用JAXB从XSD生成XML
jaxb xsd生成xml 这是最初由JCG合作伙伴 Experiences Unlimited的Mohamed Sanaulla发表的帖子. Mohamed解释了如何使用JAXB从给定的XSD生成X ...
最新文章
- What is OPcache
- python进制转换内置函数_python数学运算、逻辑运算和进制转化相关的 内置函数...
- Android UI 优化——使用HierarchyViewer工具
- python import 路径设置
- 只需修改一个像素,让神经网络连猫都认不出 | 论文+代码
- 58、什么是断言?应用场景?
- 配置LANMP环境(9)-- 安装Git与vsftp
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 最简单的Gif生成工具,ScreenToGif操作指南(一)
- 语音合成1700多个中文音频
- 种草电商系统种草电商系统开发解决方案
- html5 报表erp案例,SpreadJS 纯前端表格控件应用案例:集成 Odoo 提升企业ERP表格功能...
- 传统家装有落差,VR全景家装让你体验新房落成效果
- 用Python搞定豆瓣上征婚交友的小姐姐们~
- 练习4-7 求e的近似值
- 阿斯利康助力无锡国际生命科学创新园全面启用;艾仕得上海嘉定工厂进一步扩大 | 美通企业日报...
- 如何使用WordPress建立亚马逊会员商店
- python使用手册
- 闲来无事,过了三天“神雕侠侣”的生活
- cms-详细页面-1