java 的readLine()怎么进行的
public class Test3 {
public static void main(String args[]) {
String s;
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(ir);
System.out.println("Unix系统:ctrl-d或者ctrl-c退出"+"\nWindows系统:ctrl-z退出");
try {
s=in.readLine();
while (s!=null){
System.out.println("Read:"+s);
s = in.readLine();//????
}
in.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
为什么删掉 while中的s = in.readLine();后会无限输出 展开
readLine()是读取流读数据的时候用的,同时会以字符串形式返回这一行的数据,当读取完所有的数据时会返回null。
代码示例:
public static void main(String[] args) throws Exception {
//获取读取流 3
FileReader reader = new FileReader("C:\\Users\\杨华彬\\Desktop\\test.txt");
BufferedReader br = new BufferedReader(reader);
while (br.readLine() != null) {
//注意这里输出的是readLine(),while循环中的和输出中的readLine()方法被掉了两次,所以会隔行读取。
System.out.println(br.readLine());
}
//关闭读取流
br.close();
reader.close();14
}
拓展资料:
使用readLine()一定要注意:
读入的数据要注意有/r或/n或/r/n
没有数据时会阻塞,在数据流异常或断开时才会返回null
使用socket之类的数据流时,要避免使用readLine(),以免为了等待一个换行/回车符而一直阻塞
参考资料:菜鸟教程
2022-09-27 广告
2015-12-15 · 做真实的自己 用良心做教育
具体用法如下:
public static void readFileByLines(String fileName) {
File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一行");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
//一次读一行,读入null时文件结束
while ((tempString = reader.readLine()) != null) {
//把当前行号显示出来
System.out.println("line " + line + ": " + tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
public String readLine()
throws IOException
Reads a line of text. A line is considered to be terminated by
any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return
followed immediately by a linefeed.
Returns:
A String containing the contents of the line, not including any
line-termination characters, or null if the end of the stream has been reached
因为你首先输入了一行字符串,然后输入流读取到这个字符串后s!=null为true,while循环永远不会结束。再加了一个s= in.readline()以后。系统先输出之前你输入的一行字符串,然后陷入阻塞状态,然后等你再输入一行。这个时候如果不想继续了就按ctrl+c结束循环。
Java 中 readLine() 读到回车或者文件结束符就会终止,如果没有读到内容会返回 null 值。