2014-10-27 55 views
0

我想能夠將每行添加到一個字符串。 這樣格式字符串=「」取決於」 LINE1 LINE2 line3中LINE4 LINE5 /取決於‘’Java通過一個文件迭代,來追加每一行來創建一個大字符串

所以在essensce我想itereate在每一行,並從‘依賴’到‘/取決於’,包括它們從一端至結束在一個字符串。我如何去幹什麼呢?

while(nextLine != "</depends>"){ 
    completeString = line + currentline; 
} 


<depends> 
line1 
line2 
line3 
line4 
line5 
line6 
</depends 
+4

'而( 「」 .equals(nextLine!)){' – EpicPandaForce 2014-10-27 14:01:41

+2

旁註:使用StringBuilder,而不是普通的字符串級聯。它會更快,你不會浪費記憶與未使用的字符串。 – stuXnet 2014-10-27 14:02:55

+1

如果你使用xml,你可以使用dom解析器。防爆。 Dom4j – brso05 2014-10-27 14:05:24

回答

2
final BufferedReader br = new BufferedReader(new FileReader("path to your file")); 
final StringBuilder sb = new StringBuilder(); 
String nextLine = br.readLine();//skip first <depends> 

while(nextLine != null && !nextLine.equals("</depends>"))//not the end of the file and not the closing tag 
{ 
    sb.append(nextLine); 
    nextLine = br.readLine(); 
} 

final String completeString = sb.toString(); 
+0

用於考慮'nextLine'的'null'值 – 2014-10-27 14:18:52

1

在Java !=難道不字符串工作,所以你必須使用while(!nextLine.equals("</depends>")。此外,它是更好地使用StringBuilder和新行追加到它在java中使用StringStringimmutable和b因此,您的情況下強烈建議StringBuilder

這是任何輸入文件的一般答案,但如果您的輸入文件是xml,那麼有很多好的java庫。

1

如果你可以使用Java 8

Files 
    .lines(pathToFile) 
    .filter(s -> !s.equals("<depends>") && !s.equals("</depends>")) 
    .reduce("", (a, b) -> a + b)); 

相當不錯的版本;)

相關問題