[Duvida Java] criar um ficheiro .txt escrever, ler e converter para string array

Thekillerjp

Power Member
Olá eu sou novo no mundo da programação estou a aprender java e estou com uma duvida tenho uma variável:

Java:
String[] txt=null;

e estou a escrever o código de uma programa com um menu usando um loop do-while e em cada case uso uma função:
Java:
do {
    case 1:
creatFile(input,txt);             
    break;
    case 2:               
    break;
    //etc
    }while (opc!=0);

tenho esta função:
Java:
private static void creatFile(Scanner input, String[] txt){
        String line,file;
        System.out.println("\nFile Name:");
        file=input.nextLine();
        try {
            FileWriter myWriter = new FileWriter(file);
            System.out.println("Write a line (ENTER to close)");
            do {
                line=input.nextLine();
                if(line.length()>0)myWriter.write(line+"\n");
            }while(!line.isEmpty());
            myWriter.close();
            System.out.println("successfully");
        } catch (Exception e) {
            System.out.println("Error '"+file+"'");
        }
    }

consigo usar o menu escrever o nome do ficheiro e escrever uma linha de texto e gravar, mas preciso de passar as linhas de texto que estão no ficheiro .txt que acabei de gravar para uma string array

algo do tipo

Java:
txt=file

mas como não posso igualar uma String array a uma String não sei o que fazer a partir daqui, porque asssim não consigo usar o ficheiro .txt nos outros cases que estou a criar no programa.

será que alguém pode me ajudar?
 
Olá eu sou novo no mundo da programação estou a aprender java e estou com uma duvida tenho uma variável:

Java:
String[] txt=null;

e estou a escrever o código de uma programa com um menu usando um loop do-while e em cada case uso uma função:
Java:
do {
    case 1:
creatFile(input,txt);            
    break;
    case 2:              
    break;
    //etc
    }while (opc!=0);

tenho esta função:
Java:
private static void creatFile(Scanner input, String[] txt){
        String line,file;
        System.out.println("\nFile Name:");
        file=input.nextLine();
        try {
            FileWriter myWriter = new FileWriter(file);
            System.out.println("Write a line (ENTER to close)");
            do {
                line=input.nextLine();
                if(line.length()>0)myWriter.write(line+"\n");
            }while(!line.isEmpty());
            myWriter.close();
            System.out.println("successfully");
        } catch (Exception e) {
            System.out.println("Error '"+file+"'");
        }
    }

consigo usar o menu escrever o nome do ficheiro e escrever uma linha de texto e gravar, mas preciso de passar as linhas de texto que estão no ficheiro .txt que acabei de gravar para uma string array

algo do tipo

Java:
txt=file

mas como não posso igualar uma String array a uma String não sei o que fazer a partir daqui, porque asssim não consigo usar o ficheiro .txt nos outros cases que estou a criar no programa.

será que alguém pode me ajudar?
Quando estiveres a gravar no ficheiro, vais guardando no array.
Mas o array é mau para isso porque a quantidade de linhas que podes introduzir no ficheiro não é fixa e o array tem tamanho estático. Melhor seria usares uma lista e converteres depois para array (se quiseres mesmo um array).
 
O que queres ao
Olá eu sou novo no mundo da programação estou a aprender java e estou com uma duvida tenho uma variável:

Java:
String[] txt=null;

e estou a escrever o código de uma programa com um menu usando um loop do-while e em cada case uso uma função:
Java:
do {
    case 1:
creatFile(input,txt);            
    break;
    case 2:              
    break;
    //etc
    }while (opc!=0);

tenho esta função:
Java:
private static void creatFile(Scanner input, String[] txt){
        String line,file;
        System.out.println("\nFile Name:");
        file=input.nextLine();
        try {
            FileWriter myWriter = new FileWriter(file);
            System.out.println("Write a line (ENTER to close)");
            do {
                line=input.nextLine();
                if(line.length()>0)myWriter.write(line+"\n");
            }while(!line.isEmpty());
            myWriter.close();
            System.out.println("successfully");
        } catch (Exception e) {
            System.out.println("Error '"+file+"'");
        }
    }

consigo usar o menu escrever o nome do ficheiro e escrever uma linha de texto e gravar, mas preciso de passar as linhas de texto que estão no ficheiro .txt que acabei de gravar para uma string array

algo do tipo

Java:
txt=file

mas como não posso igualar uma String array a uma String não sei o que fazer a partir daqui, porque asssim não consigo usar o ficheiro .txt nos outros cases que estou a criar no programa.

será que alguém pode me ajudar?

E já agora qual o objetivo de usares um array?
Queres adicionar cada linha do documento para uma posição no array?

Podes antes explicar melhor o que pretendes com este "programa".
 
O que queres ao


E já agora qual o objetivo de usares um array?
Queres adicionar cada linha do documento para uma posição no array?

Podes antes explicar melhor o que pretendes com este "programa".

eu queria guardar cada linha de texto num array, para maia a frente poder por exemplo adicionar mais uma linha ao apagar a linha 3 por exemplo.
 
Quando estiveres a gravar no ficheiro, vais guardando no array.
Mas o array é mau para isso porque a quantidade de linhas que podes introduzir no ficheiro não é fixa e o array tem tamanho estático. Melhor seria usares uma lista e converteres depois para array (se quiseres mesmo um array).
sim era mais ou menos isso que eu queria

porque por exemplo opção 1 criar o txt, opção 2 adicionar linha de texto opção 3 substituir uma palavra opção 4 apagar a linha x de texto
 
eu queria guardar cada linha de texto num array, para maia a frente poder por exemplo adicionar mais uma linha ao apagar a linha 3 por exemplo.

No teu caso podes usar antes um List<String> e para ler tenta ler sobre BufferedReader e bastante simples ler linha a linha de um ficheiro .txt
 
Back
Topo