【问题标题】:Sorting a text file in Java在 Java 中对文本文件进行排序
【发布时间】:2013-03-16 23:40:00
【问题描述】:

我有一个包含单词列表的文本文件,我需要使用 Java 按字母顺序对其进行排序。这些词位于单独的行中。

我将如何处理,将它们读入数组列表,然后对其进行排序??

【问题讨论】:

  • 有点离题的答案,但是$ sort filename > sorted.txt
  • 如果文件数据适合内存,您的想法可能会奏效。
  • 该文件是一个单词字典。 1.1 mbs。超过1000字??
  • 1.1MB 不算什么。如果不能从命令行使用排序,将其读入字符串数组,然后对它们进行排序。
  • 这是 [Sort ArrayList 按字母顺序][1] 的副本。 [1]:stackoverflow.com/questions/2496841/…

标签: java file sorting text


【解决方案1】:

这是一个简单的四步流程,Stackoverflow Questions 解决了四个步骤中的三个:

  1. Read each line and turn them into Java String
  2. 将每个 Java 字符串存储在一个数组中(不要认为您需要此字符串的引用。)
  3. Sort your Array
  4. Write out each Java String in your array

【讨论】:

  • +1 用于引用已经存在的帖子,而不是对此感到厌烦
【解决方案2】:
import java.io.*;
import java.util.*;

public class example
{
    TreeSet<String> tree=new TreeSet<String>();
    public static void main(String args[])
    {
        new example().go();
    }
    public void go()

    {
        getlist();
        System.out.println(tree);

    }
     void getlist()
    {
        try
        {
            File myfile= new File("C:/Users/Rajat/Desktop/me.txt");
            BufferedReader reader=new BufferedReader(new FileReader(myfile));
            String line=null;
            while((line=reader.readLine())!=null){
                addnames(line);


            }
        reader.close();
        }

        catch(Exception ex)
        {
            ex.printStackTrace();
        }

    }
    void addnames(String a)
    {
           tree.add(a);
           for(int i=1;i<=a.length();i++)
           {

           }
    }
}

【讨论】:

    【解决方案3】:

    这是一个使用集合排序的示例:

    public static void sortFile() throws IOException
    {     
        FileReader fileReader = new FileReader("C:\\words.txt");
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        List<String> lines = new ArrayList<String>();
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            lines.add(line);
        }
        bufferedReader.close();
    
        Collections.sort(lines, Collator.getInstance());
    
        FileWriter writer = new FileWriter("C:\\wordsnew.txt"); 
        for(String str: lines) {
          writer.write(str + "\r\n");
        }
        writer.close();
    }
    

    您也可以像这样使用自己的排序规则:

    Locale lithuanian = new Locale("lt_LT");
    Collator lithuanianCollator = Collator.getInstance(lithuanian);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 2011-04-22
      • 2011-10-15
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      相关资源
      最近更新 更多