Lendo arquivos em bytes!

0 respostas
J

Dae galera!!! Eu criei uma classe que lê um arquivo byte a byte, queria saber como eu faço pra verificar se existe uma determinada palavra dentro dele! Fiz assim, mas com arquivos no formato rtf não tá funcionando!! E outra coisa, como eu não sei o tamanho do arquivo que eu vou ler, como eu faço pra deixar isso mais dinâmico? Pois o método length da classe RandoAccessFile me retorna um long!!! Queria saber como vocês normalmente implementam essa solução!!!
Valeu!!!

import java.io.EOFException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;


public class CopyFile {

	private static RandomAccessFile arquivo;
	private static RandomAccessFile arquivoSaida;	
	private static StringBuffer buffer = new StringBuffer();
	private static byte[] bufferByte = new byte[ 1024 ];
	public static void main(String[] args) {

		String strToken = "";
		try {
			arquivo = new RandomAccessFile( new File("C:\\temp\\dados.rtf"), "r");// Arquivo lido
			arquivoSaida = new RandomAccessFile( new File("C:\\dados.rtf"), "rw"); // Arquivo gerado
			for( int i = 0; i < arquivo.length(); i++ ) {
				bufferByte[ i ] = arquivo.readByte();
				//arquivoSaida.write( bufferByte); // Retorna um inteiro
				//arquivoSaida.write( arquivo.readByte()); // Retorna byte
			    buffer.append((char)bufferByte[ i ]);
				if( buffer.indexOf( "Java" ) != -1 )
					strToken = buffer.substring( buffer.indexOf( "Java") + 4 );
			}
			System.out.println( strToken );
			arquivoSaida.write( bufferByte ); // Retorna um inteiro

		} catch( EOFException e ) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				arquivo.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}

}
Criado 18 de outubro de 2006
Respostas 0
Participantes 1