Duvida em manipulação de arquivos

8 respostas
gui_sv

Opa Galeraa, Blza ??

Seguinte …

estou lendo um arquivo .sql …

dentro dele contem as seguintes linhas:

[b]insert into
cliente (id, nome) values
(1, ‘Gui’);

insert into
  cliente (id, nome) values
   (1, 'Jao');

[/b]

Onde eu tenho como delimitador ai o ( ; ) …ler lnha a linha eu consigo … e se o statement tiver em uma linha só tbm …

Agora, eu quero montar um statment assim - insert into cliente (id, nome) values (1, ‘Gui’); para passar para PreparedStatment.

na verdade eu tenho q para qnd eu encotrar um ponto e virgula … mas enquanto isso tenho q montar o statmente em uma unica linha.

alguem pode me ajudar ??

8 Respostas

moacirjava

procura por substring ou split

gui_sv

valeu…

mas por split nao da pq ele me retorna um array de String … o q nao é necessario

ademarizu

Existe uma solução tosca e bem simples para o que tu quer fazer…
Tu pode criar um StringBuffer e sair concatenando todos os carcteres que vc encontra. Se vc encontrar um ‘;’ vc fecha o buffer e retorna a string.

[]'s

gui_sv

boa …

a principio to tentando resolver com StringBuffer … heheh

mas pq entao seria tosca ?!?!

cristianosanchez

Use a classe java.util.Scanner… No javadoc você tem alguns exemplos…

Scanner s = new Scanner(new File(input.sql)).useDelimiter(";"); System.out.println(s.next()); s.close();

Que neste caso iria retornar:

insert into
cliente (id, nome) values
(1, ‘Gui’);

ademarizu

gui_sv:
boa …

a principio to tentando resolver com StringBuffer … heheh

mas pq entao seria tosca ?!?!

É que como você acaba usando “força bruta” meio que parece tosco. Acho que a solução do cristianosanchez seja mais interessante! =D

gui_sv

cristianosanchez:
Use a classe java.util.Scanner… No javadoc você tem alguns exemplos…

Scanner s = new Scanner(new File(input.sql)).useDelimiter(";"); System.out.println(s.next()); s.close();

Que neste caso iria retornar:

insert into
cliente (id, nome) values
(1, ‘Gui’);

entendi … vou testar sua solução …

qq duvida volto a postar …

galera … obrigado a todos !!!

gui_sv

cristianosanchez:
Use a classe java.util.Scanner… No javadoc você tem alguns exemplos…

Scanner s = new Scanner(new File(input.sql)).useDelimiter(";"); System.out.println(s.next()); s.close();

Que neste caso iria retornar:

insert into
cliente (id, nome) values
(1, ‘Gui’);

Perfeito … funciona direitinho … !!!

obrigado caraaa …

Criado 28 de agosto de 2008
Ultima resposta 28 de ago. de 2008
Respostas 8
Participantes 4