java input readline_java编程问题,书上说这个input.readLine();是过滤无用输入,请问什么意思,理解不...

展开全部

书上说的吧,不一定完全对。

的确根据API文档,是能过滤一32313133353236313431303231363533e4b893e5b19e31333339653761些字符,但是这些字符并非完全无用public String readLine()  throws IOException

读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。

返回:

包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

过滤的字符是用于换行的,所以当你在控制台输出读取的文本时,如果包含\r\n字符的就会换行

举例,在windows环境下

源文件如下

5aab4e8ff543654aaac6f7fcdb88da10.png

可以想象成如下,注意红色字符是换行符,并不显示

67b579686d2361668a0df96fa20d2fc0.png

然后我们使用java.io进行读取import java.io.BufferedReader;

import java.io.FileReader;

public class Demo {

public static void main(String[] args) throws Exception {

//FileReader读取数据,并输出字符数和文本内容

FileReader fr = new FileReader("c:\\a.txt");

int temp;

StringBuilder sb = new StringBuilder();

while ((temp = fr.read()) != -1) {

sb.append((char)temp);

}

fr.close();

System.out.println("FileReader读取:字符数"+sb.length());

System.out.println(sb.toString());//并没有按一行一行的打印,自动换行了

//BufferedReader读取数据,并输出字符数和文本内容

BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));

String str ;

StringBuilder sb2 = new StringBuilder();

while((str=br.readLine())!=null){

sb2.append(str);

}

br.close();

System.out.println("BufferedReader读取: 字符数"+sb2.length());

System.out.println(sb2.toString());//过滤了换行符,所以输出的话没有换行

}

}

输出效果如图

953e93c22477263deb6920455271bdb3.png

BufferedReader过滤的就是6个换行用的字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值