1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

java texto

Discussão em 'Programação' iniciada por DarkT, 6 de Fevereiro de 2009. (Respostas: 3; Visualizações: 776)

  1. DarkT

    DarkT Power Member

    Pessoal gostava de saber como ler m ficheiro txt em java e depois meter num array.

    eu conseguir ler consegui mas nao consegui passar para array : / e o codigo para ler o ficheiro tb nao era assim muito simples..

    queria algo do genero:

    texto:

    Olá mundo zwane.
    adeus azwane
    ate amanha.

    tipo fazia um array de 3 linhas e cada linha tinha uma coluna por letra.

    [O][l][á][ ][m][n][d][o][ ][z][w][a][n][e][.]
    [a][d][e][ ][a][z][w][a][n][e]
    [a][t][e][ ][a][m][a][n][h][a][.]

    tipo assim: a posiçao [2][4] = s ..
     
  2. DarkT

    DarkT Power Member

    Pois sim eu ate ai tinha chegado xD

    Código:
    import java.util.Scanner;                
    import java.io.*;                            
    
    public class compressor
    {
        public static void main(String[] args) throws IOException
        {
            String frase=null;        
            int i = 0, j = 0, nl = 0, nc = 0; //nl = number of lines; nc = number of columns
            char ch;
            
            File file = new File("input.txt");
            Scanner inputFile = new Scanner(file);
            PrintWriter outputFile = new PrintWriter("compressed.txt");        
        
            
            while (inputFile.hasNext())
            {
                nl ++;    
                frase = inputFile.nextLine();    /**Lê as linhas do ficheiro "input.txt"**/
                if (frase.length() > nc)
                    nc = frase.length();
                
            }
            
            String[][] texto = new String [nl][nc];
            
            while (inputFile.hasNext())
            {
                frase = inputFile.nextLine();
                while (i != nl)
                {
                    while (j != nc)
                    {
                        //if (j != frase.length())
                        //{
                            texto [i][j] = String.valueOf(frase.charAt(j));
                            System.out.println(texto[i][j]);
                            System.out.println("lol");
                        //}
                        //else texto [i][j] = null;
                    
                    }
                }    
            }                                
            
            System.out.println(nl);
            System.out.println(nc);
            //Close the files.
            inputFile.close();
            outputFile.close();
        
        }
    }
    
    
    Tipo ele parece que nao quer entrar nos whiles :/ para atricuir valor a frase para depois usar o charat e igual a posiçao do array bidimensional :S


    System.out.println("lol"); isto era so para testar se entrava no ciclo :S nao entra em nenhum mesmo :/
     
    Última edição: 6 de Fevereiro de 2009
  3. Pois acho que o problema é que quando chegas ao segundo while o teu "apontador" já está no fim do ficheiro!

    Podes resolver fechando e abrindo o ficheiro outra vez(deve funcionar), ou entao metes tudo dentro de um while mudas um pouco a estrutura mas deve ficar mais pequeno e menos complicado!

    Qualquer coisa do tipo

    while (inputFile.hasNext()){
    les linha e guardas na string

    agora fazes um forzinho do tamanho da string
    e metes no array( n t esqueças de adicionar um contador incrementado dps do for para contar as linhas)
    }
     

Partilhar esta Página