1

我正在尝试创建一个缓冲阅读器,通过聊天进行演讲,目的是让长陈述更容易。我让这个缓冲的阅读器听到,它在大多数情况下都有效,但它只读取最后一行,其他一切都很好。我在代码中哪里出错了?作为参考,这里是:(为了澄清,“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;}

    }
4

2 回答 2

0

我的 minecraft 缓冲阅读器只读取最后一行

不,您的缓冲阅读器会读取每一行。但是,除了最后一行之外,您将丢弃所有内容。

您的异常处理也很差。在构造 BufferedReader 的 IOException 之后,您不应允许该方法继续。大多数情况下,您的 catch 块位于错误的位置:它们应该是所有主要代码。

于 2012-09-19T00:38:54.083 回答
0

在行

 speechmakerchat = notataco;

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

 speechmakerchat += notataco;

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

于 2012-09-19T00:25:38.603 回答