2011-04-16 32 views
0

我希望重用InputStream的從HTTP response.resultset()來...獲取的SAXException同時使用document.parse(字符串)

  • 我轉換的InputStream byte []數組(也需要存儲這樣我創建的字節數組)
  • 比轉換成字符串
  • 當我把它傳遞給document.parse(串)給出錯誤saxparserException:--- EOF沒有找到
  • 工作的罰款與document.parse(流)

// ------------下面的方法不樂於助人的我,他們每個人導致
saxparserException通訊協定未找到。

import java.io.BufferedInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.InputStream; 
import java.io.IOException;  

public static String readInputStreamAsString(InputStream in) 
    throws IOException { 

    BufferedInputStream bis = new BufferedInputStream(in); 
    ByteArrayOutputStream buf = new ByteArrayOutputStream(); 
    int result = bis.read(); 
    while(result != -1) { 
     byte b = (byte)result; 
     buf.write(b); 
     result = bis.read(); 
    }   
    return buf.toString(); 
} 



//-------------- 


byte[] bytes=new byte[inputStream.available()]; 
inputStream.read(bytes); 
String s = new String(bytes); 

//------------------ 

    StringBuilder response = new StringBuilder(); 
    int value = 0; 
    boolean active = true; 
    while (active) { 
     value = is.read(); 
     if (value == -1) { 
      throw new IOException("End of Stream"); 
     } else if (value != '\n') { 
      response.append((char) value); 
      continue; 
     } else { 
      active = false; 
     } 
    } 
    return response.toString(); 

//-------------- 

BufferedInputStream ib = new BufferedInputStream(is,1024*1024); 
StringBuffer sb = new StringBuffer(); 
String temp = ib.readLine(); 
while (temp !=null){ 
    sb.append (temp); 
    sb.append ("\n"); 
    temp = ib.readLine(); 
    } 
s = sb.toString() 

回答

1

我通過解決問題: -

document.parse(新ByteArrayInputStream的(流))

0

如果你有HTTP響應,其中包括XML數據,您可以使用saxparser解析XML數據。

+0

感謝您的答覆,但我想,爲什麼這件事情發生到解決問題。 – 2011-04-17 21:52:52

0

我懷疑你可能誤解了SAXParser.parse方法簽名。

帶有String參數的解析方法的版本期望String代表引用內容而不是內容本身的URI。

如果您已將輸入保存在字符串變量中,最好在字符串上打開一個StringReader,並在StringReader上創建一個InputSource,然後將其傳遞給解析器。

+0

感謝您的回覆 當我試圖打印字符串,它與我接受的相同,但是當我解析它給出錯誤時,當我重新輸入輸入流時,它又給出錯誤。 我想解決這個問題發生的原因。 我讀了一個具有相同問題的博客,他們說使用字符串緩衝區來轉換流而不是字符串閱讀器。 – 2011-04-17 21:50:19