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

时间:2018-04-15 18:08:47

标签: java

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

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

嗯,我知道这不是正确的问题类型,因为我必须展示我到目前为止所做的事情,或者证明我已经尝试了一些东西,但问题是我无法做到这一点。即使我已经尝试了几个小时,也要做任何事情。

2 个答案:

答案 0 :(得分:0)

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

关于文件的排序,您将文件内容读取为缓冲区流(可以逐行读取),并在TreeSet< Integer>中添加该行。这样只存储唯一值(所以不重复)。最后,只需将TreeSet数据写入文件即可。

答案 1 :(得分:0)

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

  1. 阅读文本文件:FileReader ...
  2. ...逐行:BufferedReader及其readLine()方法
  3. 来自文本的整数:Integer.parseInt()(假设:每行有一个数字)
  4. 将整数存储在对其进行排序的内容中,并删除重复项:TreeSet<Integer>及其add()方法
  5. 取回号码(已订购,已删除重复):iterator()(同一TreeSet<Integer>
  6. 编写文本文件:PrintWriter
  7. 存在一些差距,但阅读文档和检查相关示例将填补它们。

    <小时/> 没有任何花哨/神秘的构造:

    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();
    }
    

    评论的部分会将结果打印到文件中。

    测试文件:numbers.txt

    34
    2345
    736
    2435
    7436
    2345
    2435