用javaIO批量操作文本文件生成指定格式的XML文件

文本文件:

1	DDA_CUST_NAME	收款方客户名	NODUP	单节点	x	20
2	DDA_TRAN_AMT	存款户余额	NODUP	单节点	x	13
3	CUST_NAME		NODUP	单节点	x	20
4	CUST_ADDR		NODUP	单节点	x	30
5	SAV_MAST_ITEM		NODUP	单节点	x	4
6	SAV_INT_ITEM		NODUP	单节点	x	4
7	SAV_LAST_BAL		NODUP	单节点	x	13
8	CR_ACCU		NODUP	单节点	x	13
9	VCH_TYPE		NODUP	单节点	x	1
10	SAV_PRN_LINE		NODUP	单节点	x	3
11	SAV_PRN_FLAG		NODUP	单节点	x	1
12	SAV_TRN_TIMES		NODUP	单节点	x	3
13	HOST_SEQ_NO		NODUP	单节点	x	10
14	PRINT_LINE		NODUP	单节点	x	3
15	INTEREST		NODUP	单节点	x	13
16	BALANCE		NODUP	单节点	x	13
17	TRN_AMT		NODUP	单节点	x	13
18	BEG_INT_DATE		NODUP	单节点	x	8
19	TERM		NODUP	单节点	x	2
20	SAV_SUCC_MSG		NODUP	单节点	x	80
21	SAV_CUST_DATE		NODUP	单节点	x	8
22	REC_NUM		NODUP	单节点	x	3
23	SAV_YBT_SERIAL		DUP	单节点	x	3
24	SAV_OPEN_DATE		DUP	单节点	x	8
25	SAV_START_DATE		DUP	单节点	x	8
26	SAV_DC_FLAG		DUP	单节点	x	1
27	SAV_TRN_AMT		DUP	单节点	x	13
28	SAV_INTEREST		DUP	单节点	x	13
29	SAV_BALANCE		DUP	单节点	x	13
30	INST_NO		DUP	单节点	x	6
31	TLR_NO		DUP	单节点	x	4
32	SAV_CONTEXT		DUP	单节点	x	10
33	SAV_TRAN_ID		DUP	单节点	x	4

javaIO操作代码:

package utils;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
 
/**
 * Desc:
 * @describe 手动将Excel报文的前7列复制到TXT文件,运行代码在控制台复制XML
 * @author wangfy
 * @date 
 * @version 1.0
 * @param 
 * @return 
 * @throws 
 */
 
public class txt2Xml {
	public static void readTxtFile(String filePath) {
		try {
			String encoding = "GBK";
			File file = new File(filePath);
			if (file.isFile() && file.exists()) {
				InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);
				BufferedReader bufferedReader = new BufferedReader(read);
				String lineTxt = null;
				while ((lineTxt = bufferedReader.readLine()) != null) {
					String[] result = getXMLcode(lineTxt);
					StringBuilder content = new StringBuilder("");
					if(result[2] == null)
						content.append("<var namespace=\"\" expr=\"" + result[1] + "\" desc=\"\" lentype=\"VARLEN\" len=\""
								+ result[6]
								+ "\" loc=\"\" align=\"LEFT\" fill=\"#20\" compart=\"\" class=\"\" handleprocess=\"\" argvar=\"\" mac=\"\" />");
					else
						content.append("<var namespace=\"\" expr=\"" + result[1] + "\" desc=\"" + result[2] + "\" lentype=\"VARLEN\" len=\""
								+ result[6]
								+ "\" loc=\"\" align=\"LEFT\" fill=\"#20\" compart=\"\" class=\"\" handleprocess=\"\" argvar=\"\" mac=\"\" />");
					System.out.println(content);
				}
				read.close();
			} else {
				System.out.println("找不到指定的文件");
			}
		} catch (Exception e) {
			System.out.println("读取文件内容出错");
			e.printStackTrace();
		}
	}
	public static String[] getXMLcode(String str) {
		String[] result = new String[7];
		int st = 0, index = 0;
		for (int i = 0; i < str.length(); i++) {
			if (str.charAt(i) == '\t' || i == str.length() - 1) {
				if (i == str.length() - 1)
					result[index++] = str.substring(st, i + 1);
				else
					result[index++] = str.substring(st, i);
				st = i + 1;
			}
		}
		return result;
	}
	public static void main(String[] args) {
		readTxtFile("C:/23.txt");
	}
}

控制台输出的指定格式XML文件:

<var namespace="" expr="DDA_CUST_NAME" desc="收款方客户名" lentype="VARLEN" len="20" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="DDA_TRAN_AMT" desc="存款户余额" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="CUST_NAME" desc="" lentype="VARLEN" len="20" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="CUST_ADDR" desc="" lentype="VARLEN" len="30" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_MAST_ITEM" desc="" lentype="VARLEN" len="4" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_INT_ITEM" desc="" lentype="VARLEN" len="4" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_LAST_BAL" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="CR_ACCU" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="VCH_TYPE" desc="" lentype="VARLEN" len="1" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_PRN_LINE" desc="" lentype="VARLEN" len="3" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_PRN_FLAG" desc="" lentype="VARLEN" len="1" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_TRN_TIMES" desc="" lentype="VARLEN" len="3" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="HOST_SEQ_NO" desc="" lentype="VARLEN" len="10" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="PRINT_LINE" desc="" lentype="VARLEN" len="3" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="INTEREST" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="BALANCE" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="TRN_AMT" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="BEG_INT_DATE" desc="" lentype="VARLEN" len="8" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="TERM" desc="" lentype="VARLEN" len="2" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_SUCC_MSG" desc="" lentype="VARLEN" len="80" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_CUST_DATE" desc="" lentype="VARLEN" len="8" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="REC_NUM" desc="" lentype="VARLEN" len="3" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_YBT_SERIAL" desc="" lentype="VARLEN" len="3" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_OPEN_DATE" desc="" lentype="VARLEN" len="8" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_START_DATE" desc="" lentype="VARLEN" len="8" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_DC_FLAG" desc="" lentype="VARLEN" len="1" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_TRN_AMT" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_INTEREST" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_BALANCE" desc="" lentype="VARLEN" len="13" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="INST_NO" desc="" lentype="VARLEN" len="6" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="TLR_NO" desc="" lentype="VARLEN" len="4" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_CONTEXT" desc="" lentype="VARLEN" len="10" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />
<var namespace="" expr="SAV_TRAN_ID" desc="" lentype="VARLEN" len="4" loc="" align="LEFT" fill="#20" compart="" class="" handleprocess="" argvar="" mac="" />

实习生的无聊日常。。。

-----------------------------------------------------------

竟然出了2.0版本。。。得有多无聊。。。

package txt2Xml;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

/**
 * Desc: 
 * @describe 手动将一个或多个Excel报文的前7列复制到txt2Xml目录下例如1123.txt,运行代码后,1123交易目录下新增inputMsg.xml或ouputMsg.xml 
 * @author wangfy 
 * @version 2.0 
 * @date 
 * @param 
 * @return 
 * @throws
 */

public class txt2Xml {
	public static void readTxtFile(String filePath1, String filePath2) {
		try {
			FileReader reader = new FileReader(filePath1);
			FileWriter writer = new FileWriter(filePath2, true);
			BufferedReader br = new BufferedReader(reader);
			BufferedWriter bw = new BufferedWriter(writer);
			String lineTxt;
			while ((lineTxt = br.readLine()) != null) {
				String[] result = getXMLcode(lineTxt);
				StringBuilder content = new StringBuilder("");
				if (result[2] == null)
					content.append(
								"<var namespace=\"\" expr=\"" 
								+ result[1] 
								+ "\" desc=\"\" lentype=\"VARLEN\" len=\"" 
								+ result[6]
								+ "\" loc=\"\" align=\"LEFT\" fill=\"#20\" compart=\"\" class=\"\" handleprocess=\"\" argvar=\"\" mac=\"\" />"
								);
				else
					content.append(
								"<var namespace=\"\" expr=\"" 
								+ result[1] 
								+ "\" desc=\"" 
								+ result[2]
								+ "\" lentype=\"VARLEN\" len=\"" 
								+ result[6]
								+ "\" loc=\"\" align=\"LEFT\" fill=\"#20\" compart=\"\" class=\"\" handleprocess=\"\" argvar=\"\" mac=\"\" />"
								);
				content.append("\n");
				bw.write(content.toString());
			}
			br.close();
			bw.close();
		} catch (Exception e) {
			System.out.println("读取文件内容出错");
			e.printStackTrace();
		}
	}

	public static String[] getXMLcode(String str) {
		String[] result = new String[7];
		int st = 0, index = 0;
		for (int i = 0; i < str.length(); i++) {
			if (str.charAt(i) == '\t' || i == str.length() - 1) {
				if (i == str.length() - 1)
					result[index++] = str.substring(st, i + 1);
				else
					result[index++] = str.substring(st, i);
				st = i + 1;
			}
		}
		return result;
	}

	// 获取不带后缀名的文件名
	public static String getFileNameWithoutSuffix(String file_name) {
		return file_name.substring(0, file_name.lastIndexOf("."));
	}

	public static void main(String[] args) {
		/* txt文件目录 */
		String fileDirectory1 = "C:/Users/wasdw/Desktop/txt2Xml/";
		/* xml文件目录,以11交易目录为例 */
		String fileDirectory2 = "C:/Users/wasdw/Desktop/ws01/11/";
		File file = new File(fileDirectory1);
		if (!file.isDirectory()) {
			System.out.println("目录不存在");
			return;
		}
		String[] fileName = file.list();
		for (String perFileName : fileName) {
			readTxtFile(
						fileDirectory1 + perFileName, 
						fileDirectory2 + getFileNameWithoutSuffix(perFileName) + "/" 
						/*+ getFileNameWithoutSuffix(perFileName) + ".xml");*/
						+ "inputMsg.xml"
						);
		}
	}
}

 

2.1改进版 >>>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值