Nullii 2016-03-27 17:13 采纳率: 33.3%
浏览 1754
已结题

IO流 自定义readLine 无法读取下一行

import java.io.*;
public class Demo
{
public static void main(String[] args) throws IOException
{
BufferedWriter bfw = new BufferedWriter(new FileWriter("b.txt"));
bfw.write("sdasdaad\r\n");

    bfw.write("1");
    bfw.close();

    myreadline bfr = new myreadline(new FileReader("b.txt"));
    String s = null;
    while((s = bfr.method()) != null)
    {
        sop(s);
    }
    bfr.myclose();

}

public static void sop(Object obj)
{
    System.out.println(obj);
}

}

class myreadline extends Reader
{
private FileReader r ;
myreadline(FileReader r)
{
this.r = r;
}

public String method() throws IOException
{
    StringBuilder sb = new StringBuilder();

    int ch =0;
    while((ch = r.read()) != -1)
    {
        if( ch == '\r')
            continue;
        if(ch == '\n')
            return sb.toString();
        else
            sb.append((char)ch);
    }
    return null;
}

public void myclose()throws IOException
{
    r.close();
}

public void close()throws IOException
{
    r.close();
}

public int read(char[] c , int a , int b) throws IOException
{
    return r.read(c, a , b);
}

}

为什么只能读取一行呢???

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-03-27 22:12
    关注

    StringBuilder sb = new StringBuilder();
    这个sb放在局部变量里,每次调用都不会再有之前读取的缓冲的字符了。

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧