2014-01-09 36 views
4
public static void main(String[] args) throws MalformedURLException, IOException 
{ 
    // TODO code application logic here 
    URL link1 = new URL("xmlFileHere"); 
    InputStream xml = link1.openStream(); 
    InputStreamReader reader = new InputStreamReader(xml); 
    BufferedReader reader1 = new BufferedReader(reader); 
    while(reader1.readLine()!= null) 
    { 
     System.out.println(reader1.readLine()); 
    } 

} 

你好。正如你可以看到我的BufferedReader没有读取整个在线XML文件,我不知道为什么。任何想法为什么发生这种情况
谢谢。BufferedReader不在线阅读整个XML文件

+0

顺便说一句。请确保您使用trim()从文件中读取后删除前后不需要的字符 – TheLostMind

回答

10
while(reader1.readLine()!= null) // reading here 
{ 
System.out.println(reader1.readLine()); // and here 
} 

您跳过每次循环线...

做的,在你的代码

String line=null; 
while((line=reader1.readLine())!= null) // reading here 
{ 
System.out.println(line); // and displaying here 
} 
1

改变这一点。

String curLine = ""; 
while((curLine=reader1.readLine())!= null) 
{ 
    System.out.println(curLine); 
} 

reader1.readLine()将读取你的行while循环并且再次内while循环这不显示整个XML文件中创建的问题。

3

我喜欢这个成语

for (String curLine; (curLine=reader1.readLine()) != null;) { 
    System.out.println(curLine); 
} 

这是很好的,因为只需要内部循环curLine VAR

4

考虑使用Scanner这得益于hasNextLine()方法使得迭代更加直观。

Scanner scanner = new Scanner(reader1); 
while (scanner.hasNextLine()) {//check if next line exists 
    System.out.println(scanner.nextLine());//use this next line 
} 
scanner.close(); 
0

更改while循环。

String line; 
    while((line=reader1.readLine()) != null) 
    { 
     System.out.println(line); 
    }