如何在具有n行数的xml文件中分割100行,并将其添加到使用java的子文件中
问题描述:
我对编程很陌生,请帮助我解决这种情况。 我试图设计一个程序的代码如何在具有n行数的xml文件中分割100行,并将其添加到使用java的子文件中
我有一个xml文件,其中包含X行的数量,我需要把该文件的第100行到另一个子文件和旁边的另一个子文件等等直到最后。命名约定应该像文件1,文件2,...
输入文件将是5000,10000个,甚至更多行
我需要为这个场景动态代码中使用DOM解析器
我设计具有常量行的文件的代码。
import java.io.*;
public class splitting
{
public static void main(String args[])throws Exception
{
int count = 0;
BufferedReader br = null;
FileWriter fileWriter1 = new FileWriter("C:\\senderoutput1.txt");
FileWriter fileWriter2 = new FileWriter("C:\\senderoutput2.txt");
FileWriter fileWriter3 = new FileWriter("C:\\senderoutput3.txt");
FileWriter fileWriter4 = new FileWriter("C:\\senderoutput4.txt");
try {
String currentLine;
br = new BufferedReader(new FileReader("C:\\senderinput.txt"));
while ((currentLine = br.readLine()) != null)
{
count++;
if (count <= 100)
{
fileWriter1.write(currentLine + System.getProperty("line.separator", "\r\n"));
} else if (count > 100 && count <= 200)
{
fileWriter2.write(currentLine + System.getProperty("line.separator", "\r\n"));
}else if (count > 200 && count <= 300)
{
fileWriter3.write(currentLine + System.getProperty("line.separator", "\r\n"));
}else if (count > 300 && count <= 400)
{
fileWriter4.write(currentLine + System.getProperty("line.separator", "\r\n"));
}
}
} finally
{
if (br != null)
{
br.close();
}
fileWriter1.close();
fileWriter2.close();
fileWriter3.close();
fileWriter4.close();
System.out.println("File Splitting was successful!!!");
}
}
}
此代码适用于具有400行的文件。
如何做n行?
答
你可以做这样的事情,以达到你想达到什么目的:
BufferedReader br = null;
FileWriter fileWriter = new FileWriter("C:\\senderoutput1.txt");
try {
String currentLine = null;
br = new BufferedReader(new FileReader("C:\\senderinput.txt"));
while ((currentLine = br.readLine()) != null) {
/* Increment Counter */
++count;
/* Write Text To File */
fileWriter.write(currentLine + System.getProperty("line.separator", "\r\n"));
/* Check Split Condition */
if (count % 100 == 0) {
/* Close Already Open File */
fileWriter.close();
/* Point To New File */
fileWriter = new FileWriter("C:\\senderoutput" + (count/100 + 1) + ".txt");
}
}
/* Close Last Open File */
fileWriter.close();
} finally {
if (br != null) {
br.close();
}
System.out.println("File Splitting Completed Successfully!!!");
}
请注意,这只是给你一个想法,你可以修改它按您的需求。
答
初学的方法:
- 1)阅读在一个循环中的下一行。
- 2)递增计数器&将当前行追加到字符串中。
- 3)每当计数器达到一个新的100十进制值时, 会将字符串(其中包含行的集合) 写出到新文件中。
- 4)清除字符串。
我相信最好能做一个描述,然后给出代码,特别是对于初学者。
不确定以这种方式拆分XML文件是好的。结果文件将无效(XML)。可能是一个示例XML内容在这里会有所帮助,并且您可能希望为此使用StAX。 –