首页 > 解决方案 > 获取文本文件值,拆分,输出到 JTextArea

问题描述

我有一个项目,我必须通过单击按钮将文本文件的内容输出到 JTextArea 中,但文本文件的内容由;以下示例分隔:2.32;123,864,432.23;. 我必须拆分文本文件的内容,然后将其输出到文本区域。我在这样做时遇到了困难,因为当我输入代码时我的代码错误textbox1.append(title); 。谁能帮我找到解决方案?

这是我的代码

btn1.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                JFileChooser filechooser = new JFileChooser();
                filechooser.setDialogTitle("Select text file");
                filechooser.showOpenDialog(null);       
                
                File openfile = filechooser.getSelectedFile();
                FileInputStream fis = null;
                
                try {
                    fis = new FileInputStream (openfile); 
                } catch (FileNotFoundException d) {
                    // TODO Auto-generated catch block
                    d.printStackTrace();
                }
                
                BufferedReader br = new BufferedReader (new InputStreamReader (fis));
                
                String line = null;
                try {
                    line = br.readLine();
                    
                    while (line != null) {
                    String[] text = line.split(";");
                    textbox.append(text); 
                    line = br.readLine();
                    } 
                    
                } catch (IOException f) {
                    // TODO Auto-generated catch block
                    f.printStackTrace();
                }
            
                
                try {
                    br.close(); //closes the file
                } catch (IOException g) {
                    // TODO Auto-generated catch block
                    g.printStackTrace();
                }
            }

标签: javaswinguser-interface

解决方案


String您必须单独附加split数组中的每个,而不是数组本身。

Stream.of(line.split(";")).forEach(textbox::append);

如果你想对分割文本做更多的事情,你也可以使用 for 循环:

for(String part:line.split(";"))  {
    textbox.append(part);
    textbox.append("\n");
}

推荐阅读