java读取文件中的内容并进行排序。求大神支招 ~急!!

 我来答
开心的马六
2013-07-02 · TA获得超过473个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:205万
展开全部
public class SortFile {
    
    public static void main(String[] args) {
        new SortFile().doWork();
    }
    
    private static final String FILE = "data.txt"; // !!!modify
    
    class Course implements Comparable<Course> {
        String name;
        String teacher;
        int period;
        int price;
        
        Course(String name, String teacher, int period, int price) {
            this.name = name;
            this.teacher = teacher;
            this.period = period;
            this.price = price;
        }

        @Override
        public int compareTo(Course target) {
            if (price == target.price) {
                return target.period - period;
            }
            return target.price - price;
        }
        
        @Override
        public String toString() {
            return "[NAME: " + name + " , TEACHER: " + teacher + " , PERIOD: " + period + " , PRICE: " + price + "]";
        }
    }
    
    private void doWork() {
        List<Course> courses = new ArrayList<Course>();
        readFile(courses);
        Collections.sort(courses);
        int max = courses.size() >= 3 ? 3 : courses.size();
        for (int i = 0; i < max; i++) {
            System.out.println(courses.get(i).toString());
        }
    }
    
    private void readFile(List<Course> courses) {
        try {
            BufferedReader br = new BufferedReader(new FileReader(FILE));
            String line = null;
            while ((line = br.readLine()) != null) {
                String[] data = line.split("    ");
                try {
                    data[3] = data[3].substring(0, data[3].length() - 1); // delete 元
                    Course course = new Course(data[0], data[1], Integer.parseInt(data[2]), Integer.parseInt(data[3]));
                    courses.add(course);
                } catch (Exception e) {}
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}
更多追问追答
追问
为什么运行不了呢?
追答

出什么错。。。

private static final String FILE = "data.txt"; // !!!modify

这一行要改成你自己的文件的路径。

虚之源
2013-07-02 · TA获得超过313个赞
知道小有建树答主
回答量:484
采纳率:50%
帮助的人:192万
展开全部
  1. 首先创建个课程类

  2. 通过io流去读取文件

  3. 将每条记录存放到对象中

  4. 用collections进行排序

  5. 输出最贵的前三门课程


更多追问追答
追问
可不可以给我个具体的代码呢。十分感谢
追答
现在没时间写,你要的话 可以迟点再写给你
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式