[英]java read properties and xml file using stringbuilder
我需要讀取一組xml和屬性文件並解析數據。 目前,我正在使用inputstream ans字符串生成器來執行此操作。 但這不會以與輸入文件相同的方式創建文件。 我不想刪除空格和換行。 我該如何做到這一點。
is = test.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
String line5;
StringBuilder sb5 = new StringBuilder();
while ((line5 = br.readLine()) != null) {
sb5.append(line5);
}
String s = sb5.toString();
我的輸出是:
#test 123 #test2 345
預期輸出為:
#test
123
#test2
345
有什么想法嗎 ? 謝謝
br.readLine()使用換行符,您需要在添加換行符后將它們添加到StringBuilder中。
is = test.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
String line5;
StringBuilder sb5 = new StringBuilder();
while ((line5 = br.readLine()) != null) {
sb5.append(line5);
sb5.append("\n");
}
如果您想要一個非常簡單的解決方案來將文件讀取為String,則Apache Commons-IO提供了一種用於執行此類任務的方法( org.apache.commons.io.FileUtils )。
FileUtils.readFileToString(File file, String encoding);
readLine()
方法不添加EOL字符(\\ n)。 因此,在將字符串附加到生成器時,您需要添加EOL字符,例如sb5.append(line5+"\\n");
各種readLine
方法從輸入中丟棄換行符。
返回:包含行內容的String,不包含任何行終止字符;如果已到達流的末尾,則返回null
一個解決方案可能很簡單,就是為每個readLine
重新向StringBuilder
添加換行: sb5.append(line5 + "\\n");
。
更好的選擇是使用read
方法首先讀取中間緩沖區,並提供您自己的char[]
。 您仍然可以使用StringBuilder.append
,並獲取一個與文件內容匹配的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.