JAVA 如何将文本文件里面的数据排序好并且输出

2025-05-12 14:39:53
推荐回答(1个)
回答1:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;

public class ReadInTextArea extends Frame {

    public ReadInTextArea(){
        this.setSize(400, 400);
        setLayout(new BorderLayout());

        final TextArea textArea = new TextArea("",5,20,TextArea.SCROLLBARS_VERTICAL_ONLY);
        add(textArea, BorderLayout.CENTER);

        final Button file = new Button("选择文件");
        add(file, BorderLayout.SOUTH);

        final FileDialog filedialog = new FileDialog(this,"选择文件");

        ActionListener actionListener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(e.getSource() == file){
                    filedialog.setVisible(true);
                    FileReader fr = null;
                    try {
                        fr = new FileReader(filedialog.getDirectory() + filedialog.getFile());
                        BufferedReader br = new BufferedReader(fr);
                        StringBuilder sb = new StringBuilder();
                        String tmp;
                        java.util.List list = new ArrayList<>();
                        while((tmp=br.readLine())!=null){
                            list.add(tmp);
                        }
                        Collections.sort(list, new Comparator() {
                            @Override
                            public int compare(String o1, String o2) {
                                return Integer.parseInt(o2.split("#")[1]) - Integer.parseInt(o1.split("#")[1]);
                            }
                        });
                        for (int i = 0; i < list.size(); i++) {
                            sb.append(list.get(i));
                            sb.append("\n");
                        }
                        textArea.setText(sb.toString());
                        br.close();
                        fr.close();
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }
            }
        };
        file.addActionListener(actionListener);

        this.setVisible(true);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    public static void main(String[] args) {
        ReadInTextArea readInTextArea = new ReadInTextArea();
    }

}