URL 接続から HTML コードを読み込もうとしています。あるケースでは、私が読もうとしている html ファイルには、実際のドキュメント タイプ宣言の前に 5 つの改行が含まれています。この場合、入力リーダーは EOF の例外をスローします。
URL pageUrl =
new URL(
"http://www.nytimes.com/2011/03/15/sports/basketball/15nbaround.html"
);
URLConnection getConn = pageUrl.openConnection();
getConn.connect();
DataInputStream dis = new DataInputStream(getConn.getInputStream());
//some read method here
誰もこのような問題に遭遇しましたか?
URL pageUrl = new URL("http://www.nytimes.com/2011/03/15/sports/basketball/15nbaround.html");
URLConnection getConn = pageUrl.openConnection();
getConn.connect();
DataInputStream dis = new DataInputStream(getConn.getInputStream());
String urlData = "";
while ((urlData = dis.readUTF()) != null)
System.out.println(urlData);
//例外がスローされました
java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323) での java.io.EOFException java.io.DataInputStream.readUTF(DataInputStream.java:572) での java.io.DataInputStream.readUTF(DataInputStream.java:547)
bufferedreader の場合、null を返すだけで続行しません。
pageUrl = new URL("http://www.nytimes.com/2011/03/15/sports/basketball/15nbaround.html");
URLConnection getConn = pageUrl.openConnection();
getConn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(getConn.getInputStream()));
String urlData = "";
while(true)
urlData = br.readLine();
System.out.println(urlData);
null を出力する