使用Java分隔文件内容

时间:2013-03-06 13:11:57

标签: java logging

我在这里有一个模式,例如文件以一段文字开头,如“BeginText”,另一个像“EndText”,我需要文件内容在这两个文本/字符串中。我怎么能这样做java,文件内容部分与XML混合,所以我不能在这里使用XML / DOM Parser,因为它包含普通文本和XML。有一种方法可以用Java来实现。

我在这里考虑Java扫描仪。如果还有其他想法,那就太棒了。

3 个答案:

答案 0 :(得分:2)

使用内置字符串方法的组合:“indexOf”和“subString”,方法如下:

//read file to string using our utility method
String text = readFileContents("pathToTargetFile");

//find start index
int startIndex = text.indexOf("BeginText");

//find end index from start index.
int endIndex = text.indexOf("EndText",startIndex);

//grab the sub string of the text between these two values.
String targetText = text.subString(startIndex,endIndex);





//private utility method, reads file contents and returns as a string
private String readFileContents(String filePath){

BufferedReader reader = new BufferedReader( new FileReader (new File(filePath)));
String         line = null;
StringBuilder  stringBuilder = new StringBuilder();
String         ls = System.getProperty("line.separator");

while( ( line = reader.readLine() ) != null ) {
    stringBuilder.append( line );
    stringBuilder.append( ls );
}

return stringBuilder.toString();
}

这应该产生预期的结果。

答案 1 :(得分:1)

如何使用String.indexOf(String)

int start = s.indexOf("BeginText");
int end = s.indexOf("EndText");
String content = s.substring(start + "BeginText".length(), end);

其中s是您的文件内容

你必须检查开始是否在结束之前,如果值不是-1

答案 2 :(得分:0)

使用java pattern matching和正则表达式来确定开始和结束字符的索引。有了这些,你就有了自己的内容。