[解決済み] Premature end of file(ファイルの早期終了)」というエラーが発生するのはなぜですか?
2022-02-02 15:37:47
質問
をパースしようとしています。
XML response
しかし、私は惨めに失敗しています。私は最初
その
xml
がレスポンスで返されないだけなので、以下のようなコードを作成し、私の
xml
ファイルをオンラインで表示します。を印刷することができます。
XML
を問題なく画面に表示することができます。しかし、parseメソッドを呼び出すと、次のようになります。
ファイルの早期終了。
URLを直接渡すとうまくいくのですが。
- builder.parse("");
が、InputStreamを渡すと失敗する。
-
builder.parse(connection.getInputStream());
try { URL url = new URL(xml); URLConnection uc = url.openConnection(); HttpURLConnection connection = (HttpURLConnection )uc; connection.setDoInput(true); connection.setDoOutput(true); InputStream instream; InputSource source; //get XML from InputStream if(connection.getResponseCode()>= 200){ connection.connect(); instream = connection.getInputStream(); parseDoc(instream); } else{ instream = connection.getErrorStream(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } static void parseDoc(InputStream instream) throws ParserConfigurationException, SAXException, IOException{ BufferedReader buff_read = new BufferedReader(new InputStreamReader(instream,"UTF-8")); String inputLine = null; while((inputLine = buff_read.readLine())!= null){ System.out.println(inputLine); } DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance(); factory.isIgnoringElementContentWhitespace(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(instream); }
私が受けているエラー
[Fatal Error] :1:1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at com.ameba.api.network.MainApp.parseDoc(MainApp.java:78)
at com.ameba.api.network.MainApp.main(MainApp.java:41)
解決方法は?
こんなときは
while((inputLine = buff_read.readLine())!= null){
System.out.println(inputLine);
}
インスタンスストリームですべてを消費するので、インスタンスストリームは空です。 さて、これを実行しようとすると
Document doc = builder.parse(instream);
空のストリームを渡したので、パースに失敗します。
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] JavaでNoClassDefFoundErrorが発生するのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaの".class期待値"
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】Eclipseがエラーメッセージ "Java was started but returned exit code = 1" を返す
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】Javaメソッドスタブ
-
[解決済み] テスト
-
[解決済み】CreateProcess error=2, The system cannot find file specified.
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)