我正在尝试创建一个缓冲的阅读器,以便通过聊天进行发言,目的是使说长语句变得更加容易。我有这个缓冲的读者,它在大多数情况下都可以工作,但只读取最后一行,其他所有工作都很好。我在代码中哪里出错了?作为参考,它是:(为澄清起见,“ eggtime”是一个时间延迟的布尔值)


  静态文件华夫饼=新文件(Minecraft.getMinecraftDir(),“ speech.txt”);


public static void speechedo(String args)
{


    if(waffles.exists())
    {
        @SuppressWarnings("resource")
        BufferedReader read = null;
        try {
            read = new BufferedReader(new FileReader(waffles));
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }
        String notataco;
        if (eggtime){
        try {
            for(int i = 0; (notataco = read.readLine()) != null; i++)
            {

                speechmakerchat = notataco;


            }
        } catch (IOException e) {

            e.printStackTrace();
        }
        }

    }else{
        return;}

    }

最佳答案

在行中

 speechmakerchat = notataco;


您要用最后一行替换speechmakerchat的内容,并丢弃先前读取的值。您需要将新数据连接到旧数据:

 speechmakerchat += notataco;


顺便说一下,您有...有趣的...变量的命名约定。

10-08 19:35