java readline()方法的一个很头疼的问题

我知道readline()方法是以回车换行符为结束标志的,但有的时候没有回车换行符,可我又想读到数据,如下面的几行代码:
ss = new ServerSocket(10000);
socket = ss.accept();
System.out.println("等待会话");

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

int line = in.readline();
System.out.println("接收到的字符串:"+line);

很显然,这是serversocket接收数据的一个很简单的例子,我用网络测试工具连接这个serversocket,并发送一串字符“123”,问题是网络测试工具发送“123”的时候并不会加上回车换行符,从而导致serversocket接到数据输入流,但通过readline()方法读取时,总会显示null值。我要想从serversocket中读到“123”,应该怎么做??能不能人工加上一个回车换行符??或者除了readline()方法,还有其他方法能读取buffer中的能容????

第1个回答  2011-09-09
可以 一个字符一个字符的 读,br.read(),

也可以 把数据读到一个 字符数组里去 br.read(char[])
第2个回答  2011-09-09
while(line=in.readline()!=null){
System.out.println("接收到的字符串:"+line);
}本回答被提问者采纳
第3个回答  2011-09-13
利剑追问

不带这样的%>_<%

追答

我看不懂。。。你在哪呀?

第4个回答  2011-09-09
二楼说的好

java readline严重不明白的问题。
1、lz说“(手)按回车”,得出readLine应该源自Console命令行,命令行只在有操作系统shell的情况下有效,比如win命令行或linux shell,而一些伪命令行状态比如编辑器的输出窗口,是无效的。要在正确的场合使用Console,不然用Scanner(System.in)的适用范围稍大一点。2、“不会执行”很可能是假象。真正原因...

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()方法怎么没读到数据???
write之后flush了吗?有的时候你写入的东西太短,socket会做缓冲的,flush会强制将缓冲的字节发送出去。还有如果你用readLine读数据,记得给你用write发出去的内容里添加一个'\\n',要不readLine是会lock在readLine里面的,直到读取到一个'\\n'才会返回。

求助一个关于readLine()方法的问题
可以试试readline() 以后 用StringTokenizer 分开 或者直接用Scanner 读 后者简单

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

Java问题readline?
StringBuilder resultStringBuilder = new StringBuilder();try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) { String line;while ((line = br.readLine()) != null) { resultStringBuilder.append(line).append("\\n");} } System.out.println(resultStringBuilder....

关于java中readline阻塞问题
因为是期待“\\r\\n"这样的换行符号,所以会等待。。。如果不想等等,可以换成read(bytep[])

JAVA的readLine()就是执行不了,详见如下,请答复。
import java.io.InputStreamReader;public class ReadLine { public static void main(String[] args) { \/\/ TODO Auto-generated method stub System.out.print("请输入值:");BufferedReader boy=new BufferedReader(new InputStreamReader(System.in));String mystring=null;try { mystring = boy....

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...

相似回答