2013-03-26 2 views
2

У меня есть текстовый файл со списком слов, который мне нужно отсортировать в алфавитном порядке с помощью Java. Слова расположены на отдельных строках.Сортировка текстового файла в Java

Как бы я это сделал, Прочитайте их в списке массивов, а затем отсортируйте их?

+0

насколько большой файл? – sjr

+0

Сортировка ответа не по теме, но как насчет '$ sort filename> sorted.txt' –

+0

Ваша идея может работать, если данные файла вписываются в память. –

ответ

7

Это простой процесс, четыре шага, с тремя из четырех этапов, рассматриваемых StackOverflow Вопросы:

  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

+1 для ссылки на сообщения, которые уже существуют, и не будучи рывка об этом – Jazzepi

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); 
Смежные вопросы