import java.io.*;
import java.net.*;
public class Test
{
public static void main(String args[])
{
try{
String str=new String();
String temp=new String();
BufferedReader inobj=new BufferedReader(new InputStreamReader(System.in));
while((temp=inobj.readLine())!=null)
{
str=str+temp;
System.out.println("you input "+temp);
}
System.out.println("you input "+str);
}catch(IOException e)
{
System.out.println(e);
}
}
}
这个循环怎么没有结束啊
import java.net.*;
public class Test
{
public static void main(String args[])
{
try{
String str=new String();
String temp=new String();
BufferedReader inobj=new BufferedReader(new InputStreamReader(System.in));
while((temp=inobj.readLine())!=null)
{
str=str+temp;
System.out.println("you input "+temp);
}
System.out.println("you input "+str);
}catch(IOException e)
{
System.out.println(e);
}
}
}
这个循环怎么没有结束啊
if(temp.equals("break")) //break的时候结束
break;
readLine()返回包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。每运行一次readLine(),BufferedReader的指针指向下一行。
public String readLine()
throws IOException读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。 返回:
包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
抛出:
IOException - 如果发生 I/O 错误~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
它的意思不是说输入回车就结束么?
while(!((temp=inobj.readLine()).equals("")))
改成这个,表示你什么也不输入,程序结束
到达流的末尾,返回null,但是你回车换行后表示你的readLine()这个方法结束,并不是到达流的末尾.
while(!((temp=inobj.readLine()).equals("")))
改成这个,表示你什么也不输入,程序结束
这个就是我要求的。
~~~~~~~~~~~~~~~~
但是为什么没有返回null呢?
String s=null;
是不一样的,搞清楚,从键盘输入不会返回null的
如果有一个文件流,你从文件流里读东西,读到末尾就会返回null
你的判断和自己输入有关,NULL是什么概念