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!!!
[code]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();
}
}
}
}[/code]