【发布时间】:2018-08-23 04:01:38
【问题描述】:
我正在寻找一种基于外部文本输入以特定方式编写多个文本文件的方法。目前,我可以使用 Java 以所需格式将外部文本数据写入单个 txt 文件,但我需要根据 GIS 值将文本写入单独的文件中。这意味着如果 GIS 与文件名相同为 GIS,则所有表都将位于单个文件中,并且将根据 GIS 名称进一步拆分。
我的外部数据有超过 50000 个值,这是不可能的手动操作。请建议是否可以使用 Perl、shell、PHP 脚本以任何其他方式实现。
要求写入单独的文件,例如:
A. BAB.txt : GIS 在这里很常见..
<TABLE>
<TR><TD>City:</TD><TD><b>BHOPAL</b></TD></TR>
<TR><TD>Node Name:</TD><TD>BAB-H1</TD></TR>
<TR><TD>GIS:</TD><TD>BAB</TD></TR>
<TR><TD>Link:</TD><TD>BAB-H1</TD></TR>
</TABLE>
<TABLE>
<TR><TD>City:</TD><TD><b>BHOPAL</b></TD></TR>
<TR><TD>Node Name:</TD><TD>BAB-H2</TD></TR>
<TR><TD>GIS:</TD><TD>BAB</TD></TR>
<TR><TD>Link:</TD><TD>BAB-H2</TD></TR>
</TABLE>
<TABLE>
<TR><TD>City:</TD><TD><b>BHOPAL</b></TD></TR>
<TR><TD>Node Name:</TD><TD>BAB-H3</TD></TR>
<TR><TD>GIS:</TD><TD>BAB</TD></TR>
<TR><TD>Link:</TD><TD>BAB-H3</TD></TR>
</TABLE>
B. RAH.txt:
<TABLE>
<TR><TD>City:</TD><TD><b>BHILAI</b></TD></TR>
<TR><TD>Node Name:</TD><TD>RAH-A1</TD></TR>
<TR><TD>GIS:</TD><TD>RAH</TD></TR>
<TR><TD>Link:</TD><TD>RAH-A1</TD></TR>
</TABLE>
<TABLE>
<TR><TD>City:</TD><TD><b>BHILAI</b></TD></TR>
<TR><TD>Node Name:</TD><TD>RAH-A2</TD></TR>
<TR><TD>GIS:</TD><TD>RAH</TD></TR>
<TR><TD>Link:</TD><TD>RAH-A2</TD></TR>
</TABLE>
我来自文本文件的外部输入:
City,Link,Node Name,GIS BHILAI,RAH-A1,RAH-A1,RAH BHILAI,RAH-A2,RAH-A2,RAH BHILAI,COMBO,RCV-A1,RCV BHILAI,COMBO,RIA-A1,RIA BHILAI,MPCG_ALU,RJA-A1,RJA BHILAI,MPCG_ALU,RJP-A2,RJP BHILAI,MPCG_ALU,RKU-A1,RKU BHILAI,COMBO,RNN-A1,RNN Bhilai,RNN-A4,RNN-A4,RNN BHOPAL,BAB-H1,BAB-H1,BAB BHOPAL,BAB-H2,BAB-H2,BAB BHOPAL,BAB-H3,BAB-H3,BAB BHOPAL,COMBO,BAB-H4,BAB BHOPAL,COMBO,BAB-H5,BAB
Java 输出:当前写入单个文件
<TABLE>
<TR><TD>City:</TD><TD><b>BHILAI</b></TD></TR>
<TR><TD>Node Name:</TD><TD>RAH-A1</TD></TR>
<TR><TD>GIS:</TD><TD>RAH</TD></TR>
<TR><TD>Link:</TD><TD>RAH-A1</TD></TR>
</TABLE>
<TABLE>
<TR><TD>City:</TD><TD><b>BHILAI</b></TD></TR>
<TR><TD>Node Name:</TD><TD>RAH-A2</TD></TR>
<TR><TD>GIS:</TD><TD>RAH</TD></TR>
<TR><TD>Link:</TD><TD>RAH-A2</TD></TR>
</TABLE>
<TABLE>
<TR><TD>City:</TD><TD><b>BHILAI</b></TD></TR>
<TR><TD>Node Name:</TD><TD>RCV-A1</TD></TR>
<TR><TD>GIS:</TD><TD>RCV</TD></TR>
<TR><TD>Link:</TD><TD>COMBO</TD></TR>
</TABLE>
<TABLE>
<TR><TD>City:</TD><TD><b>BHILAI</b></TD></TR>
<TR><TD>Node Name:</TD><TD>RIA-A1</TD></TR>
<TR><TD>GIS:</TD><TD>RIA</TD></TR>
<TR><TD>Link:</TD><TD>COMBO</TD></TR>
</TABLE>
Java:
import java.io.*;
import java.util.*;
import java.lang.*;
public class MakeTestCfg_CM
{
public static void main(String[] args)
{
try {
BufferedReader input = new BufferedReader(new FileReader(args[0]));
FileWriter outFile = new FileWriter("table.txt");
PrintWriter out = new PrintWriter(outFile);
String line = null;
String city = null;
String link = null;
String nodename = null;
String gis = null;
while (( line = input.readLine()) != null)
{
StringTokenizer strT = new StringTokenizer(line,",");
city = strT.nextToken();
link = strT.nextToken();
nodename = strT.nextToken();
gis = strT.nextToken();
out.println(" <TABLE>");
out.println(" <TR><TD>City:</TD><TD><b>"+city+"</b></TD></TR>");
out.println(" <TR><TD>Node Name:</TD><TD>"+nodename+"</TD></TR>");
out.println(" <TR><TD>GIS:</TD><TD>"+gis+"</TD></TR>");
out.println(" <TR><TD>Link:</TD><TD>"+link+"</TD></TR>");
out.println(" </TABLE>");
out.println();
}
input.close();
out.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
【问题讨论】:
-
注意:Java 和 Javascript 是不同的语言,Java 不是脚本语言。
-
无法理解奉献的理由?我的问题是与 Java 还是 JavaScript 有关,没有争议,我在这里可能错了..但我正在寻找我的要求的解决方案。
-
“无法理解投入的理由?” DYM 否决票?如果是这样,您必须询问投反对票的人。