Java 如何通过读取.txt来填充TextView并替换以前存在的.txt。?

Java 如何通过读取.txt来填充TextView并替换以前存在的.txt。?,java,android,Java,Android,我是android开发的新手,正在做一个项目,用.txt文件填充textview。对多个txt文件使用相同的文本视图。但问题是它在该文本视图中显示第一、第二、第三个所有文本。它没有清除前一个 MenuModel menuModel = new MenuModel("Introduction", true, false, "Intro.txt"); headerList.add(menuModel); menuModel = new MenuModel("Tense", tr

我是android开发的新手,正在做一个项目,用.txt文件填充textview。对多个txt文件使用相同的文本视图。但问题是它在该文本视图中显示第一、第二、第三个所有文本。它没有清除前一个

  MenuModel menuModel = new MenuModel("Introduction", true, false, "Intro.txt");
    headerList.add(menuModel);

    menuModel = new MenuModel("Tense", true, true, "");
    headerList.add(menuModel);
    List<MenuModel> childModelsList = new ArrayList<>();
    MenuModel childModel = new MenuModel("About Tense ", false, false, "TENSE.txt");
    childModelsList.add(childModel);
 if (menuModel.hasChildren) {
        childList.put(menuModel, childModelsList);
    }
setFile将选择要打开的文本文档

                    String setFile = headerList.get(groupPosition).url;
                    BufferedReader reader = null;
                    try {
                        reader = new BufferedReader(
                                new InputStreamReader(getAssets().open(setFile)));
                        String mLine;
                        while ((mLine = reader.readLine()) != null) {

                            text.append(mLine);
                            text.append('\n');
                        }
                    } catch (IOException e) {
                        Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
                        e.printStackTrace();
                    } finally {
                        if (reader != null) {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                //log the exception
                            }
                        }

                        TextView txtView = findViewById(R.id.tvContent);
                        txtView.clearComposingText();
                        txtView.setMovementMethod(new ScrollingMovementMethod());
                        txtView.setText(text);


                    }

                    onBackPressed();
                }
            }

            return false;
        }
    });

    expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {

            if (childList.get(headerList.get(groupPosition)) != null) {
                MenuModel model = childList.get(headerList.get(groupPosition)).get(childPosition);
                if (model.url.length() > 0) {
                    String setFile = model.url;
                    BufferedReader reader = null;
                    try {
                        reader = new BufferedReader(
                                new InputStreamReader(getAssets().open(setFile)));


                        String mLine;
                        while ((mLine = reader.readLine()) != null) {
                            text.append(mLine);
                            text.append('\n');
                        }
                    } catch (IOException e) {
                        Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
                        e.printStackTrace();
                    } finally {
                        if (reader != null) {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                //log the exception
                            }
                        }
                        TextView txtView = findViewById(R.id.tvContent);
                        txtView.clearComposingText();
                        txtView.setMovementMethod(new ScrollingMovementMethod());
                        txtView.setText(text);

                    }
                    onBackPressed();
                }
            }

            return false;
        }
    });
}
setFile将选择要打开的文本文档

                    String setFile = headerList.get(groupPosition).url;
                    BufferedReader reader = null;
                    try {
                        reader = new BufferedReader(
                                new InputStreamReader(getAssets().open(setFile)));
                        String mLine;
                        while ((mLine = reader.readLine()) != null) {

                            text.append(mLine);
                            text.append('\n');
                        }
                    } catch (IOException e) {
                        Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
                        e.printStackTrace();
                    } finally {
                        if (reader != null) {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                //log the exception
                            }
                        }

                        TextView txtView = findViewById(R.id.tvContent);
                        txtView.clearComposingText();
                        txtView.setMovementMethod(new ScrollingMovementMethod());
                        txtView.setText(text);


                    }

                    onBackPressed();
                }
            }

            return false;
        }
    });

    expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {

            if (childList.get(headerList.get(groupPosition)) != null) {
                MenuModel model = childList.get(headerList.get(groupPosition)).get(childPosition);
                if (model.url.length() > 0) {
                    String setFile = model.url;
                    BufferedReader reader = null;
                    try {
                        reader = new BufferedReader(
                                new InputStreamReader(getAssets().open(setFile)));


                        String mLine;
                        while ((mLine = reader.readLine()) != null) {
                            text.append(mLine);
                            text.append('\n');
                        }
                    } catch (IOException e) {
                        Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
                        e.printStackTrace();
                    } finally {
                        if (reader != null) {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                //log the exception
                            }
                        }
                        TextView txtView = findViewById(R.id.tvContent);
                        txtView.clearComposingText();
                        txtView.setMovementMethod(new ScrollingMovementMethod());
                        txtView.setText(text);

                    }
                    onBackPressed();
                }
            }

            return false;
        }
    });
}

用于存储文件行的变量
text
显然是
StringBuilder
对象,不是吗
从文件中读取每一行后,您可以使用它来追加每一行,读取完成后,您可以将
TextView
的文本设置为
StringBuilder
的文本
但在开始阅读这些行并将它们附加到
StringBuilder
之前,必须使用

text = new StringBuilder();


因此,在
while
循环之前放置上面的1行。

您的代码有什么错误?