文本文件:
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"
);
}
}
}