java中读取网页源代码时,使用readline函数的问题

我使用
InputStream is=c.getInputStream();
InputStreamReader isr=new InputStreamReader(is,charset);
BufferedReader br=new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String str=null;
str=br.readLine();
while(str!=null) {
sb.append(str); //获取每一行代码加入BUFFER
str=br.readLine();
}
br.close();
isr.close();
is.close();
来读取不同字符编码设置的源文件.它作为主线程的一个函数在运行,循环读取.但是当网络出现异常时系统不能从网络上读取某网页的完整源代码,就会停止在循环中的sb.append(str);有的时候几分钟后就继续运行了,有的时候几个小时都不动~高分求解决方案
我的程序能够读取网页代码,但是在网络不稳定时会停滞.现在分析应该是在readline()中停止了,原因不明...
如果一直读不到呢?有什么解决方案?

这也需要解释,readLine()是中断式的呗,每次运行到这一行都要读取到下一行之后才会继续后面的程序
readLine是中断式的你没有办法解决,再说也不是你的问题,是对方服务器或者是网络的问题,我们能做的只是设置一个timeout,时间过了,提示读取失败,可以试试apache的HttpClient
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-09
我老师上课教的,简单的代码不知道能不能给你点启发
package com.tarena.day17.net;//从一个网址读出东西
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TestUrl {
public static void main(String[] args)
throws Exception{
URL url = new
URL("http://192.168.2.57/index.php");//这行懂的吧,读取该业代码
URLConnection uc = url.openConnection();
BufferedReader br = new BufferedReader(
new InputStreamReader(
uc.getInputStream()));
while(true){
String temp = br.readLine();
if(temp == null)break;
System.out.println(temp);
}
br.close();
}
}

java中读取网页源代码时,使用readline函数的问题
readLine是中断式的你没有办法解决,再说也不是你的问题,是对方服务器或者是网络的问题,我们能做的只是设置一个timeout,时间过了,提示读取失败,可以试试apache的HttpClient

java中读取文件,用readline()读怎么会有的行读不到?
System.out.println(br.readLine());xmlstr.append(br.readLine());} 每出现一次br.redLine()它就读一行,你这个循环里面写了两次,它就执行了两次 System.out.println(br.readLine());执行了第一行 xmlstr.append(br.readLine());执行了第二行 再循环System.out.println(br.readLine());执行的...

java readline严重不明白的问题。
测试代码:import java.io.Console;public class Test { public static void main(String[] args) { Console c=System.console();String a;a=c.readLine();System.out.println(a.length());if (a.length()==0){ System.out.println("good");} } } 能正常输出good 所以,lz的问题出在其他...

Java问题readline?
你的代码已经报错了,这个是按行读取文件。InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test.txt");StringBuilder resultStringBuilder = new StringBuilder();try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) { String line;while ((...

java readLine() 重新输入的问题
你好,四个方法如下:你在main函数里,直接调用这些方法即可 比如获得double类型就是,xxx main(xxx){ double a= getDoubleInput(b);} public String getStringInput(BufferedReader b) { try { return b.readLine();} catch (IOException e) { return getStringInput(b);} } public double get...

java中readLine()怎样用?
readLine()是读取流读数据的时候用的,当读到换行标记'\\n'、'\\r'(回车)时,会跟着换行,同时会以字符串形式返回这一行的数据,当读取完所有的数据时会返回null

java socket编程 readline()读取问题,为啥在client端刚连接上就开始无限...
str=br.readLine();这个改成 br=scan.readLine();然后你再试一下 顺便再说一下,这个程序我写过,我开始想的也是客户端发送的数据服务器端可以实时接收,但是我发现我错了,因为Scanner 的阻塞,如果客户端发送消息服务器端必须也得发送一个消息才能收到,这个内容可以是任意内容,比如一个回车,如果想让...

java中bufferreader读文件时有530行,怎么用readline()读取时只能读到24...
readline是根据换行符来判断的 如果本行最后面没有换行符,readline是会继续,直到下一个换行符

java编程问题,书上说这个input.readLine();是过滤无用输入,请问什么意 ...
源文件如下 可以想象成如下,注意红色字符是换行符,并不显示 然后我们使用java.io进行读取 import java.io.BufferedReader;import java.io.FileReader;public class Demo {public static void main(String[] args) throws Exception {\/\/FileReader读取数据,并输出字符数和文本内容FileReader fr = new ...

Java中bufferedReader的readline读取不到文件内容,显示的是null。
1.你这个代码最主要的br怎么获取的没有写,只有最后一句的br.readLine();所以不好判断。2.你主要查看一下文档路径获取的是否正确,数据流读取是否正确。如果前面错了最后一步肯定也读取不到内容。3.问问题贴代码最后贴全了,文档路径,处理过程都得有,而不是只有处理后的数据流。

相似回答