Abrir arquivo e verificar se existe uma certa palavra.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
vini_rj2000
Thread.start()

Membro desde: 07/09/2008 18:31:23
Mensagens: 45
Offline

Boa Tarde a todos do Guj.

Eu estou com um problema com um projeto da facu.

Eu tenho que abrir um arquivo, ler os seus 128 últimos caracteres e verificar se uma certa palavra existe.

Exemplo:

Eu abro um arquivo, vou para suas ultimas 128 palavra e procuro JAVA, se Java existir eu dou um Substring para apagar estas 128 palavra.

Eu consigo abrir o arquivo mais não consigo fazer a verificação se ela existe ou não.

Se alguém souber como ajudar, agradeceria muito.

[]s

This message was edited 1 time. Last update was at 06/02/2009 14:25:30

marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2423
Localização: São Paulo - SP
Offline

Se você abre o arquivo e armazena seu conteúdo numa String, pode usar o comando substring(int, int) para pegar os 128 últimos caracteres e armazenar numa sgunda String. E a partir do método contains você verifica se determinda palavra existe.

Marco Biscaro.

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja:http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17572
Offline

Use java.io.RandomAccessFile para poder ler um arquivo, pegando seus 128 últimos bytes.
(Dica: você vai precisar dos métodos "length", "seek" e "read" de RandomAccessFile).

A seguir, converta esses bytes para uma string, e procure a palavra com indexOf.

This message was edited 1 time. Last update was at 06/02/2009 14:29:44

[WWW]
vini_rj2000
Thread.start()

Membro desde: 07/09/2008 18:31:23
Mensagens: 45
Offline

Obrigado pelas respostas.

Eu abro o arquivo com o JFileChooser e esse arquivo é armazenado em um Jlist.

A partir disto, se o usuário clica no Jlist o arquivo teria que ser aberto e eu realizar as funções ja mencionadas.

Como que eu faço para realizar as funções?

This message was edited 1 time. Last update was at 06/02/2009 15:11:32

kubin
JavaBaby

Membro desde: 13/10/2008 09:47:16
Mensagens: 89
Offline

posta o codigo que parece ser interessante!!?
vini_rj2000
Thread.start()

Membro desde: 07/09/2008 18:31:23
Mensagens: 45
Offline

Kubin, no momento eu não posso colocar o código pois é referente ao meu Projeto Final, mais quando ele acabar eu posto aqui o código e o Jar.

Eai galera ninguém sabe como me ajudar?
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5681
Localização: São Paulo
Offline

vini_rj2000 wrote:Kubin, no momento eu não posso colocar o código pois é referente ao meu Projeto Final, mais quando ele acabar eu posto aqui o código e o Jar.

Eai galera ninguém sabe como me ajudar?


ue faça um outro novo codigo coma mesma logica porem altere variaveis, metodos etc... e nao eh necessario por todo o codigo apenas na parte que tem duvida...

recomendacoes:
1. abrir o arquivo e copiar o conteudo para o ArrayList de preferencia usar Set para evitar para palavras repetidas e dai vc faz a busca
2. usar o recurso de regex para encontrar


Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
Autor "TDD na Prática": http://blog.camilolopes.com.br/lancamento-livro-tdd-na-pratica/
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17572
Offline

Bom, eu disse qual é a classe e os métodos. Basta olhar a documentação de RandomAccessFile e de String.

Pseudo-código:
- Abrir o arquivo com RandomAccessFile
- Determinar o tamanho (length)
- Ir (seek) para a posição length - 128, que é de onde você vai começar a ler
- Criar um array de 128 bytes
- Ler esse array com read
- Fechar o arquivo (close)
- A seguir, converta esse array em uma string usando o construtor da classe String que aceita um array de bytes
- Uma vez com a string pronta, use indexOf para procurar a string desejada. Se indexOf retornar -1, você não conseguiu achar o valor desejado. Senão, indexOf retornou a posição dentro da string que foi lida do arquivo.
[WWW]
vini_rj2000
Thread.start()

Membro desde: 07/09/2008 18:31:23
Mensagens: 45
Offline

Thingol muito obrigado pela sua resposta, eu vou fazer isso que vc falou.

[]s
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team