对文本文件中的数字序列进行排序的Java程序

对文本文件中的数字序列进行排序的Java程序,java,Java,我现在正忙于Java作业。我要做的是编写一个程序,对文本文件中的数字序列进行排序,这个程序应该从一个文件中读取任意数量的整数,对其进行排序,删除任何重复项,并将新列表保存在同一个文件中 程序应该询问用户输入文件的名称,并检查文件是否存在,是否包含有效数据等。问题是我甚至不知道如何开始,我一直在尝试,但未能达到目标,甚至无法编写几行代码,因为我不知道如何开始。我只知道我可以使用JFileChooser提示用户选择文件 嗯,我知道这不是一个正确的问题,因为我必须展示我到目前为止所做的事情,或者证明我

我现在正忙于Java作业。我要做的是编写一个程序,对文本文件中的数字序列进行排序,这个程序应该从一个文件中读取任意数量的整数,对其进行排序,删除任何重复项,并将新列表保存在同一个文件中

程序应该询问用户输入文件的名称,并检查文件是否存在,是否包含有效数据等。问题是我甚至不知道如何开始,我一直在尝试,但未能达到目标,甚至无法编写几行代码,因为我不知道如何开始。我只知道我可以使用JFileChooser提示用户选择文件


嗯,我知道这不是一个正确的问题,因为我必须展示我到目前为止所做的事情,或者证明我已经尝试了一些东西,但问题是,尽管我已经尝试了几个小时,但我什么都做不了。

所以,你正在尝试制作一个Swing应用程序!而且您使用的是JFileChooser,因此不需要检查文件是否存在,因为您将不会在不存在的打开窗口中看到该文件


关于文件排序,您可以将文件内容作为缓冲流读取(可以逐行读取),并将该行添加到树集中,以便只存储唯一的值(因此不会重复)。最后,只需将树集数据写入文件。

假设您需要帮助,而不是完整的代码:

  • 读取文本文件:
    FileReader
  • 。。。逐行:
    BufferedReader
    及其
    readLine()
    方法
  • 文本中的整数:
    Integer.parseInt()
    (假设:每行有一个数字)
  • 将整数存储在某个对象中,然后对其进行排序,并删除重复项:
    TreeSet
    ,及其
    add()
    方法
  • 取回数字(已排序,重复项已删除):
    iterator()
    (相同的
    TreeSet
  • 编写文本文件:
    PrintWriter
  • 有一些空白,但阅读文档并检查相关示例将填补这些空白。
    没有任何奇特/神秘的构造:

    public static void main(String[] args) throws Exception {
        TreeSet<Integer> numbers=new TreeSet<>();
        FileReader fr=new FileReader("numbers.txt");
        BufferedReader br=new BufferedReader(fr);
        String line;
        while((line=br.readLine())!=null){
            numbers.add(Integer.parseInt(line));
        }
        br.close();
        Iterator<Integer> it=numbers.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        //PrintWriter pw=new PrintWriter("result.txt");
        //while(it.hasNext()){
        //  pw.println(it.next());
        //}
        //pw.close();
    }
    

    请看:如果您完全不知道,那么现在是时候回顾一下您迄今为止所学的Java编码知识了。如果你甚至不能编写代码来阅读输入,你真的需要从你的导师那里得到帮助。我知道如何阅读输入,但我认为显示代码的这一部分不会有多大帮助,由于本程序中的主要问题与读取输入不同。您需要分解问题并确定完成任务所需的步骤。1.让用户输入文件路径。2.以有利于后续步骤的方式将文件读入内存。3.过滤重复项。4.分类问题是,每一个问题都可以独立解决。如果您不知道如何接受人工输入,请尝试对文件路径进行编码。专注于将文件读入内存,或者从一个列表/一组数字开始,并尝试对其进行排序。要求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的摘要,以及您解决问题的难度的描述(,)。好吧,基本上我要求的是完整的代码,但如果我能做到的话,我会尽量利用这些信息。谢谢你的
    Scanner
    阅读文件可能更容易。@daniu是的,当然有选择。但是,我还是做不到,如果你有时间,请你为我写完整的代码,如果不会给你带来太多不便的话?这对我来说是一个彻底的救命恩人,我将永远感谢你。@halfer是的,我发现在两次手术之间的20-25分钟里,他们说他们会尝试,而不是回来他们做不到,有点太短了,我也觉得这个课程有点奇怪。这只是一个学期的中期(第二个月或第三个月,取决于国家),人们希望编写一个GUI应用程序,包括Swing、文件处理和对集合的一些适度深入的理解?如果你有时间和意愿,请为我写一个完整的代码好吗?非常感谢。
    34
    2345
    736
    2435
    7436
    2345
    2435