cezsah
cezsah

Reputation: 11

java open file and sort data

good day!who any one can help on how to sort data from my name.txt

test.text

cath zeny ana dana maria sheila

heres my code:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;

import java.io.IOException;

public class ReadTextFileExample {

public static void main(String[] args) {

File file = new File("name.txt");

StringBuffer contents = new StringBuffer();

BufferedReader reader = null;

try {

reader = new BufferedReader(new FileReader(file));

String text = null;




while ((text = reader.readLine()) != null) {
contents.append(text).append(System.getProperty("line.separator"));

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (reader != null) {

reader.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}


System.out.println(contents.toString());
}
}

Upvotes: 1

Views: 7192

Answers (3)

nyyrikki
nyyrikki

Reputation: 1486

sorry, don't have much time to explain ...

you could put all your strings into a linkedlist or arraylist and use the Collections.sort( List lst ) method to sort them.

greetings

Upvotes: 0

Neeraj
Neeraj

Reputation: 8532

//Stores cath zeny ana diana etc in a String array
String[] names=contents.split(System.getProperty("line.seperator"));

//bubble sort
for(int i=0;i<names.length;i++)
   for(int j=0;j<names.length;j++)
   {
      int compare=names[i].compareTo(names[j]);
      if(compare > 0 )
         //swap names[i] and names[j]
      else
         //do nothins
   }

The above code should sort all the names in this array.

Upvotes: 0

David Oliv&#225;n
David Oliv&#225;n

Reputation: 2725

Put the strings into a list:

List<string> strings = new ArrayList<string>();
while ((text = reader.readLine()) != null) {
    strings.add(text);
}  

Sort the strings:

Collections.sort(strings);  

Do whatever with the sorted strings, like concatenating in a single line:

StringBuffer contents = new StringBuffer();
for (string s : strings) {
    contents.append(text).append(System.getProperty("line.separator"));
}

Upvotes: 4

Related Questions