黑马程序员技术交流社区
标题:
BufferedReader类中的readline方法
[打印本页]
作者:
刘建宇
时间:
2011-11-17 14:55
标题:
BufferedReader类中的readline方法
import java.io.*;
public class MyReadline {//根据readline方法原理,重写readline方法
private FileReader fr;
public MyReadline(FileReader fr){
this.fr=fr;
}
public String readline() throws IOException{
StringBuffer sb=new StringBuffer();
int len=0;
while((len=fr.read())!=-1){
if(len==('\r'))//为什么我在文本文档文字后面人为加上\r或者\n程序不会执行IF语句而是执行else语句呢?而键入一个enter换行符它又会走if语句呢?求指教
continue;
if(len=='\n')
return sb.toString();
else
sb.append((char)len);
}
if(sb.length()!=0)
return sb.toString();
return null;
}
public void mycolse()throws IOException{
fr.close();
}
}
作者:
张奇云
时间:
2011-11-17 15:11
\r\n是回车换行符,没法文字后面直接加上,直接加上会认为是两个字符'\'和'r',或者是'\'和'n',所以直接加会执行else语句,键入一个enter换行符它又会走if语句。
作者:
quanhui
时间:
2011-11-17 15:19
楼主是用记事本敲出来的\r吧? 记事本不会把他们看作一体,而是看作两个独立的字符'\\' 和 'r'
作者:
moonlight
时间:
2011-11-17 15:50
\r\n是回车换行符是程序默认的,如果人为的加入程序会认为是其自身的一部分,所以才会出现楼主说的那种情况!
作者:
刘建宇
时间:
2011-11-17 16:21
谢谢各位的解答 明白鸟
作者:
咪咪
时间:
2011-11-17 16:36
因为windows中存储回车符是两个字符即:\r\n 而你if(len="\n")当然不行了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2