importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args)throwsIOException{Scannerscanner=newScanner(newFileReader("arquivo.txt"));while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\|");System.out.println(parametros[0]);System.out.println(parametros[1]);System.out.println(parametros[2]);scanner.close();}Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);bw.write("insert into tabela (nome, cidade, idade) values ("+parametros[0]+","+parametros[1]+","+parametros[2]);bw.flush();bw.close();}}
Que ele lesse as duas linhas do meu arquivo txt
e que gerasse os inserts dessas duas linhas..
exemplo: ele leria natanael | fortaleza | 85
e escreveria no arquivo txt: insert into tabela (nome,cidade,idade) values ("natanael","fortaleza","85");
conseguiu entender mais ou menos a grosso modo?
C
Cesar_Pizolato
Entendi, e qual a dúvida agora ?
jkrfabio
É que o código meu acima, está com erro.
ele só está mostrando um dos nomes guardados no arquivo txt, sendo que são dois.
ele não tá concatenando os parametros e seus índices.
o que fazer?
C
Cesar_Pizolato
jkrfabio:
É que o código meu acima, está com erro.
ele só está mostrando um dos nomes guardados no arquivo txt, sendo que são dois.
ele não tá concatenando os parametros e seus índices.
o que fazer?
Dentro do While, já monte o insert e guarde dentro de uma lista para gerar o txt posteriormente.
Você está tentando usar o array parâmetros fora do while sendo que ele foi criado dentro.
jkrfabio
publicstaticvoidmain(String[]args)throwsIOException{Scannerscanner=newScanner(newFileReader("arquivo.txt"));while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\|");System.out.println(parametros[0]);System.out.println(parametros[1]);System.out.println(parametros[2]);Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);bw.write("insert into tabela (nome, cidade, idade) values ("+parametros[0]+","+parametros[1]+","+parametros[2]+");");bw.flush();bw.close();}}
Você está me ajudando bastante, estamos quase conseguindo.
esse meu código ele escreveu somente os dados da segunda linha do meu arquivo.txt
não gravou todos os dois nomes.
o que está faltando?
C
Cesar_Pizolato
Vamos pensar… você está criando o arquivo.txt toda vez que entrar no while… logo, a cada linha ele vai se sobrescrever… você precisa criar o arquivo antes do while e fechar ele depois… de modo que para cada linha do while vc escreva uma linha no arquivo com o write
DavidUser
Tente entender oque você escreve, o código de um programa deve ser como uma redação
importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Scanner;classMain{publicstaticvoidmain(String[]args)throwsIOException{Scannerscanner=newScanner(newFileReader("arquivo.txt"));Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);//percorre o arquivo linha a linhawhile(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\|");//pega a linha e divide conforme o delimitador System.out.println(parametros[0]);System.out.println(parametros[1]);System.out.println(parametros[2]);//a escrita do insert é para cada linha lida do arquivo de entradabw.write("insert into tabela (nome, cidade, idade) values ("+parametros[0]+","+parametros[1]+","+parametros[2]);bw.flush();}scanner.close();//o fechamendo do scanner ocorre quando nao vou mais utilizalobw.close();fw.close();}}
C
Cesar_Pizolato
DavidUser:
Tente entender oque você escreve, o código de um programa deve ser como uma redação
importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Scanner;classMain{publicstaticvoidmain(String[]args)throwsIOException{Scannerscanner=newScanner(newFileReader("arquivo.txt"));Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);//percorre o arquivo linha a linhawhile(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\|");//pega a linha e divide conforme o delimitador System.out.println(parametros[0]);System.out.println(parametros[1]);System.out.println(parametros[2]);//a escrita do insert é para cada linha lida do arquivo de entradabw.write("insert into tabela (nome, cidade, idade) values ("+parametros[0]+","+parametros[1]+","+parametros[2]);bw.flush();}scanner.close();//o fechamendo do scanner ocorre quando nao vou mais utilizalobw.close();fw.close();}}
Rsrsrsrs eu esperava que ele chegasse a essa conclusão sozinho, por isso não postei como deveria ficar o código :)
jkrfabio
publicstaticvoidmain(String[]args)throwsIOException{Scannerscanner=newScanner(newFileReader("arquivo.txt"));Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\|");System.out.println(parametros[0]);System.out.println(parametros[1]);System.out.println(parametros[2]);bw.write("insert into tabela (nome, cidade, idade) values ("+parametros[0]+","+parametros[1]+","+parametros[2]+");");}bw.close();}
Agora rodou perfeitamente!
C
Cesar_Pizolato
publicstaticvoidmain(String[]args)throwsIOException{Scannerscanner=newScanner(newFileReader("arquivo.txt"));Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\|");System.out.println(parametros[0]);System.out.println(parametros[1]);System.out.println(parametros[2]);bw.write("insert into tabela (nome, cidade, idade) values ("+parametros[0]+","+parametros[1]+","+parametros[2]+");");}bw.close();}
Agora rodou perfeitamente!
Marque o tópico como resolvido