谁能刚给我解释一下类CopyServer中的while((line=brin.readLine())!=null)什么时候成立

黑马流星 2013-08-09 02:23:27
import java.io.*;
import java.net.*;
class CopyDemo
{
public static void main(String[] args) throws Exception
{
Socket s=new Socket("192.168.1.104",8888);
BufferedReader br=new BufferedReader(new FileReader("TcpTrans.java"));
PrintWriter pwout=new PrintWriter(s.getOutputStream(),true);
String line=null;

while((line=br.readLine())!=null)
{
pwout.println(line);
}
pwout.println("overs");

BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
String str=brin.readLine();
System.out.println(str);
br.close();
brin.close();
s.close();
}
}
class CopyServer
{
public static void main(String[] ages) throws Exception
{
ServerSocket ss=new ServerSocket(8888);
Socket s=ss.accept();
BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw=new PrintWriter(new FileWriter("1_副本.txt"),true);
String line=null;

while((line=brin.readLine())!=null)
{
if(line.equals("overs"))
break;
pw.println(line);
}

PrintWriter prout=new PrintWriter(s.getOutputStream(),true);
String str="上传成功";
prout.println(str);
s.close();
brin.close();

}
}
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_elf 2013-08-09
  • 打赏
  • 举报
回复
brin流读取到CopyDemo中pwout流写的最后一行以后就会返回null值。但pwout写的最后一行是“over”,程序是在读到最后一行也就是“over”的时候,if判断成功退出while循环的。
S117 2013-08-09
  • 打赏
  • 举报
回复
BufferedReader吗? 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 readLine public String readLine() throws IOException读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。 返回: 包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null 抛出: IOException - 如果发生 I/O 错误 骚年,你需要一份JDK文档
失落夏天 2013-08-09
  • 打赏
  • 举报
回复
每次读一行,只有读到的那一行为空时才会不成立而跳出。
rumlee 2013-08-09
  • 打赏
  • 举报
回复
brin流读取到最后一行之后,会返回null值。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧