【问题标题】:How to clear BufferedReader if it isn't empty [Java/Android]如果 BufferedReader 不为空,如何清除它 [Java/Android]
【发布时间】:2015-12-03 02:58:44
【问题描述】:

我不明白如何清除 BufferedReader。当我在 Activity 中按下按钮时,变量设置为 1 或 2。取决于 BufferedReader 中的数字更改文件。当我在缓冲区中第二次推送时将是两个文件。如何告诉 BR 在第二个之前清除缓冲区将被上传。当然,反之亦然。

public List<String> getQuestionLinesList() {

            String line;
            List<String> lines = new ArrayList<String>();
            Log.d(TAG, " Trying to get resourses");
            Resources res = context.getResources();


            try {

                    if (selectedBox == 1) {

                        bufferedQuestions = new BufferedReader(new InputStreamReader(res.openRawResource(R.raw.questions_list)));

                    } else if (selectedBox == 2) {

                        bufferedQuestions = new BufferedReader(new InputStreamReader(res.openRawResource(R.raw.questions_list_art)));

                    }


                Log.d(TAG, "number i = " + Integer.toString(selectedBox));

                while ((line = bufferedQuestions.readLine()) != null) {
                    lines.add(line);
                    Log.d(LINETAG, line);
                }

            } catch (IOException e) {
                e.printStackTrace();
            }

            return lines;
        }

【问题讨论】:

    标签: java android arraylist bufferedreader readline


    【解决方案1】:

    也许您可以尝试在 BufferedReader 的方法中使用局部变量,而不是“bufferedQuestions”,您可能将其声明为该方法所属的类中的字段:“getQuestionLinesList”。

    【讨论】:

      【解决方案2】:

      在文件末尾添加一个回车/\n,然后 readLine() 应该能够清除您的 BufferedReader。

      JavaDocs for BufferedRead 哪些状态

        public String readLine()
        throws IOException
      

      读取一行文本。一行被视为以换行符 ('\n')、回车符 ('\r') 或回车符后紧跟换行符中的任何一种来终止。

      返回: 包含行内容的字符串,不包括任何行终止字符,如果已到达流的末尾,则为 null

      【讨论】:

      • BufferedReader 将在我可以使用之前被清除
      猜你喜欢
      • 2010-12-22
      • 1970-01-01
      • 2012-04-09
      • 2019-10-17
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 2021-05-03
      • 2011-03-19
      相关资源
      最近更新 更多