黑马程序员技术交流社区
标题: read readLine逐行读取 [打印本页]
作者: 逝....曾经 时间: 2015-6-21 18:17
标题: read readLine逐行读取
在一次读取文件的写法中,逐行
Java代码
- int c;
- while((c = br.read()) != -1){
- String s = br.readLine();
- rtString.append ;
- }
在第一次执行的时候已经读了一个字符出来,然后光标就会后移一位
接下来的循环中s=br.readLine();读到的就只是后续的字符串了,因此会少一个字符、
后来看到有人说修改为如下代码:
Java代码
- for(String line = br.readLine(); line != null; line = br.readLine()) {
- System.out.println(line);
- }
结果发现最后一个字符又读取不到了
这个是不正确的,上面这段代码是可以读取最后一行字符的!
修改为:
Java代码
- String instring;
-
- while ( (instring = br.readLine()) != null) {
- if(instring != null )
- {
- System.out.println(instring);
- }
-
- }
这样每行都可以读取到了
或者用这样的写法:
Java代码
- while (br.ready()) {
- myreadline = br.readLine();
- rtString=rtString+myreadline;
- }
作者: 安安安 时间: 2015-6-21 20:41
没明白楼主写的前2个想表达什么。
第3个While循环里套的if跟while的判断重复了吧。
while已经判断为!=nulll了,为什么还要if判断次?
第4个ready倒是第一次见,如果可行的话倒是学到了。
作者: 逝....曾经 时间: 2015-6-21 21:35
前两个是比较一下那两个方法的缺点与优点,第三个并没有重复,while是个条件成立就一直读取,if只读取一次,第四个你试试
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |