Serial possivel... [resolvido] -- descobri que é possível sim  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

Galera, é o seguinte, tenho uns 3000 scripts (na verdade, são arquivos txt) e gostaria de verificar se existe determinada palavra dentro desses arquivos.txt
Por exemplo: tenho dois arquivos .txt, em um deles está escrito:

"Ajude-me por favor (quebra de linha)
Não estou conseguindo resolver esse problema."


No segundo está escrito:

"Isso é possível (quebra de linha)
em arquivos .txt"

gostaria de verificar se a palavra 'resolver' existe no primeiro arquivo e a palavra 'possível' existe no segundo arquivo.

Ler os arquivos eu consigo, só não consigo fazer essa verificação. Se alguém souber e puder me ajudar eu agradeço.

This message was edited 1 time. Last update was at 10/05/2011 13:36:46

nel
JWizard
[Avatar]

Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline

Bom dia!
Se já consegue ler o arquivo, podes ler o mesmo linha a linha ou se já tem a certeza que trata-se de um arquivo .txt, basta transformar o byte[] em String (new String(byte[]) e depois usar o método contains, ele vai lhe retornar indicando se a palavra existe ou não.

Abraços.

"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten.
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

nel, tem como eu especificar qual a linha que ele vai ler primeiro? pois eu preciso ler apenas a linha 28 e fazer a verificação.
jscamara
Entusiasta Java
[Avatar]

Membro desde: 07/02/2010 14:38:21
Mensagens: 21
Offline

Fala cara,

ler determinada linha não tem como... pelo menos eu precisei outro dia e não encontrei solução.
O que você pode fazer eh contar as linhas enquanto vc vai lendo uma a uma.
Voce pode usar o BufferedReader para ler a linha, tem o metodo .readLine().

Aew como o Nel sugeriu vc usa o .contains() da classe String !

Abraços
[Email]
nel
JWizard
[Avatar]

Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline

david.jv wrote:nel, tem como eu especificar qual a linha que ele vai ler primeiro? pois eu preciso ler apenas a linha 28 e fazer a verificação.


Eu estaria sendo leviano se disser que sim ou que não, pois para ser sincero, não sei.
Tudo depende do formato do seu .txt.

Por exemplo, se você me diz que ele é separado sempre por quebra de linha, você pode transformar em String, aplicar um regex, esse regex vai lhe retornar um array com n posições e ai sim, você pega a posição 27 (começa em 0). É uma idéia.

Eu aconselho dai a usar o regex assim:



Tente, é uma idéia.
Abraços.

"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten.
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

entendi jscamara, estou modificando o meu código, pois estou pegandos as palavras que preciso verificar de uma planilha no excel. quando terminar eu posto o código para vocês darem uma olhada e ver se está correto
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

nel, sua idéia foi legal, mas a outra também deu certo, quando eu terminar eu posto o código, daí se vocês acharem melhor alterar alguma coisa vocês me falam.
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

galera, tá ai o código:
Testei e funcionou


This message was edited 1 time. Last update was at 10/05/2011 13:07:16

david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

david.jv wrote:galera, tá ai o código:
Testei e funcionou


david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

pessoal, foi mal, o primeiro código que eu postei era o errado, mas já corrigi. O código acima agora está correto
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

se alguém tiver uma dica para melhorar esse código me avise, ou poste ai. Agradeço ao nel e ao jscamara
nel
JWizard
[Avatar]

Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline

Não esqueça de colocar como [Resolvido] no seu tópico e de dar o close nos seus inputstream.
E antes disso, você precisa instanciar tudo dentro do seu loop?

Ao que eu vi, não podes instanciar fora dele?!
Caso o arquivo não altere o nome, deixe fora do seu loop e após sua utilização, execute os respectivos closes ok?
Abraços!

"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten.
david.jv
JavaTeenager

Membro desde: 01/10/2010 15:26:54
Mensagens: 193
Offline

nel wrote:Não esqueça de colocar como [Resolvido] no seu tópico e de dar o close nos seus inputstream.
E antes disso, você precisa instanciar tudo dentro do seu loop?

Ao que eu vi, não podes instanciar fora dele?!
Caso o arquivo não altere o nome, deixe fora do seu loop e após sua utilização, execute os respectivos closes ok?
Abraços!


Boa nel, esqueci de fechar os inputstream. Eu preciso instanciar sim dentro do loop, pois os nomes dos arquivos mudam (são 3 mil scripts (.txt)).
VLw
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team