由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 新手求教 BufferedReader.readLine()
相关主题
问一个blocking IO的程序请教问题,怎么确定空行!
新手问一个多线程的问题请问同时执行几个bat文件的问题
怎么从键盘输入整数或float?刚刚开始学习java,麻烦帮我看一下我哪里错了行吗?谢谢
JAVA文本文件读写问题从文件读入数据得到的是bytes
新手问题随机读一个大文件中的任意一行
[转载] smtp server in java?怎样截取网页
中多个

之间的内容?
新手请教怎样在Java里读文本文件中的内容java,多层map应该怎么写?求个葫芦
关于char和int的问题Re: Need Emergent help for Java I/O!
相关话题的讨论汇总
话题: message话题: null话题: username话题: string
进入Java版参与讨论
1 (共1页)
C********a
发帖数: 10
1
想不明白BufferedReader.readLine()是怎么回事 如果是读文件的话,每叫一次
readLine()就读取文件的下一行,并且返回一个String;如果读到EOF就返回null。
比如
BufferedReader br = new BufferedReader("c:/test.txt");
while ((thisLine = br.readLine()) != null) {
System.out.println(thisLine);
}
那如果读的是一个inputstream呢 像下面
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String userName = null;
try {
userName = br.readLine();
} catch (IOException ioe) {
System.out.println("IO error trying to read your name!");
System.exit(1);
}
System.out.println("Thanks for the name, " + userName);
用户还没输入 br.readLine()会在那里等着吗?还是是别的过程?
另外像下面这个循环,会一直循环下去吗?请讲一讲过程 谢谢
while((message=reader.readLine())!=null){
System.out.println("read"+message);}
g*****g
发帖数: 34805
2
It's reading from a buffer, it will not block on waiting.
b******y
发帖数: 9224
3
建议看jdk源码,能学不少东西。楼上说得对,内部实现了buffer缓存。其实和操作系
统的cache一个道理.
C********a
发帖数: 10
4
谢谢! 但是如果不等待输入的话 这个循环是怎么工作的呢
while((message=reader.readLine())!=null){
System.out.println("read"+message);}
完整代码
public class ClientHandler implements Runnable{
BufferedReader reader;
Socket sock;

public ClientHandler(Socket clientSocket){
try{
sock=clientSocket;
InputStreamReader isReader=new InputStreamReader(sock.
getInputStream());
reader=new BufferedReader(isReader);
}catch(Exception ex){ex.printStackTrace();}
}

public void run(){
String message;
try{
while((message=reader.readLine())!=null){
System.out.println("read"+message);
tellEveryone(message);
}
}catch(Exception ex){ex.printStackTrace();}
}
}

【在 g*****g 的大作中提到】
: It's reading from a buffer, it will not block on waiting.
b***i
发帖数: 3043
5
是要等待的,你试验一下不就行了

【在 C********a 的大作中提到】
: 想不明白BufferedReader.readLine()是怎么回事 如果是读文件的话,每叫一次
: readLine()就读取文件的下一行,并且返回一个String;如果读到EOF就返回null。
: 比如
: BufferedReader br = new BufferedReader("c:/test.txt");
: while ((thisLine = br.readLine()) != null) {
: System.out.println(thisLine);
: }
: 那如果读的是一个inputstream呢 像下面
: BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
: String userName = null;

1 (共1页)
进入Java版参与讨论
相关主题
Re: Need Emergent help for Java I/O!新手问题
ThreadLocal 的一个 use case[转载] smtp server in java?
傻问题,关于java里的资源释放新手请教怎样在Java里读文本文件中的内容
Re: connection pool关于char和int的问题
问一个blocking IO的程序请教问题,怎么确定空行!
新手问一个多线程的问题请问同时执行几个bat文件的问题
怎么从键盘输入整数或float?刚刚开始学习java,麻烦帮我看一下我哪里错了行吗?谢谢
JAVA文本文件读写问题从文件读入数据得到的是bytes
相关话题的讨论汇总
话题: message话题: null话题: username话题: string