2013-03-26 149 views
2

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

我该如何解决这个问题,将它们读入数组列表中,然后对它进行排序?

+0

有多大的文件? – sjr 2013-03-26 23:53:19

+0

排序题外答案,但如何 '$ sort filename> sorted.txt' – 2013-03-26 23:53:20

+0

如果文件数据适合内存,您的想法可能会工作。 – 2013-03-26 23:53:22

回答

0
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++) 
      { 

      } 
    } 
} 
0

下面是一个例子使用类别排序:

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