style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Leer un archivo.txt

Necesito hacer un programa de java que lea un archivo.txt y ordene el contenido, como los puedo unir??.
En el código que les muestro esta el método para leer el archivo y para ordenar.
El código que lee el archivo guarda el contenido en la variable “TJ2”, como le digo al método de ordenamiento que me lea esa variable

codigo..

import java.io.*;
import java.util.Arrays;
public class Archivo {
               
public static void main(String[] args){
       
        Archivo a = new Archivo();
        String tj2 = a.leer("act.txt");
        System.out.println(tj2);
       
        String nombres[] = ????;
                                         
        Arrays.sort(????) ;
        System. out.println("\nEl nuevo orden: ");
        for (int i = 0; i < nombres. length; i++) {
            System.out.print( i + " : " + nombres[i] + " " );
        }
        System. out.println();
}

public String leer(String nombre)
               
 {
    File f;
    FileReader lectorArchivo;
    try{
        f = new File(nombre);
        lectorArchivo = new FileReader(f);
        BufferedReader br = new BufferedReader(lectorArchivo);
        String l="";
        String aux="";
        while(true)
        {
           aux=br.readLine();
           if(aux!=null)
                l=l+aux+"\n";
           else
               break;

        }
        br.close();
        lectorArchivo.close();
        return l;
    }catch(IOException e){
        System.out.println("Error:"+e.getMessage());
    }

    return null;
}}

Alguien que me pueda orientar
gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Podrias leer una lista de lineas

Mmmh es un poco más dificil ordenar un String porque lo que te resultaría sería un string como:

"aaaaaabbbbbbcccccddddeeeeeffff"

Y así, mejor sería que regresaras un arreglo o lista de lineas.

Entonces, en vez de que el método leer regrese un string debe de regresar un arreglo de strings

public String[] leer()

O mejor aún una lista de Strings

public List<String> leer()

Cada vez que leas una linea, la agregas a la lista:

...
while ( ... )  {
    if ( aux != null ) {
       list.add( aux );
     }
}
...
return list;

Mejor aún:

String linea = null;
whle ( ( linea = br.readLine() ) != null ) {
    list.add( linea );
} // cuando linea sea null hace "break" solito

Y luego solo llamas al método sort pero de Collections:

List<String> tj2 = leer();
Collections.sort( tj3 );

Espero que esto te sirva.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">