Leitura de arquivos

Pessoal, tem um arquivo que esta sendo escrito em blocos de 64 bytes, e dentro destes 64 bytes eu tenhos as informações necessárias…
será que tem como eu ler o arquivo de 64 bytes em 64 bytes armazenado tudo em vetores de bytes (byte[] demstracao = new byte[64]) … sendo que não posso ler linhas, tenho que ler blocos de 64 bytes em 64 bytes!

Será que tem alguma coisa especifica para tal, eu tava lendo por linhas, mas mudaram o arquivo!

Aguardo respostas!
Abraços a todos!

***ACHO QUE ACHEI ALGUMA COISA QUE PODE SER UTIL AQUI! VEREMOS!

Boa tarde dcbasso, vc pode usar o FileInputStream mesmo.

Dê uma olhada em http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileInputStream.html#read(byte[])

Vc pode utilizar o metodo read da classe FileInputStream para leer seus arquivo por bytes, dá uma olhada no javadoc.

http://java.sun.com/j2se/1.5.0/docs/api/

é realmente funciona mesmo! mas como será que eu faria para ler até o final do arquivo… algo tipo um while… for…

arquivo.available(); ele retorna a quantidade de BYTES que tem no arquivo, porém é um INT e não long… entranho não é? será que não tem um método para andar de 64 em 64 bytes?

O metodo read devolve o numero de bytes lidos, entao eh soh vc ler enquanto esse numero seja maior que 0. Segue exemplo.

[code]
FileInputStream fis = new FileInputStream(new File(“C:/temp/readme.txt”));

	byte[] buffer = new byte[64];
	int len = 0;
	
	while((len = fis.read(buffer)) > 0) {
		//process buffer
	}[/code]

[quote=fuzzyMind]O metodo read devolve o numero de bytes lidos, entao eh soh vc ler enquanto esse numero seja maior que 0. Segue exemplo.

[code]
FileInputStream fis = new FileInputStream(new File(“C:/temp/readme.txt”));

	byte[] buffer = new byte[64];
	int len = 0;
	
	while((len = fis.read(buffer)) > 0) {
		//process buffer
	}[/code]
	[/quote]

huauhauha, meu while tava dando erro… agora deve dar certo!

valeu, indo testar!

VALEU PESSOAL! Agora ta fundando… problema era no while, para ir lendo! mto bom isso galera!

Brigado a todos!