Pessoal, é o seguinte :
Tenho uma arquivo texto no C:\, que preciso ler usando um stream. O método abaixo nao funciona, deixando um loop infinito. Mandei mostrar o offset, que deveria ser incrementado a cara leitura o metodo read, ele simplesmente nao sai do canto, fica sempre em zero. O que pode ser? Eu não entendo muito de streams…
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package inputoutputstream;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
/**
*
* @author owner
*/
public class AosPoucos {
public static void main(String[] args) {
try {
// link para um arquivo no disco...
File file = new File("C:\\testeStream.txt");
// um inpuStream para o arquivo...
FileInputStream is = new FileInputStream(file);
// byte onde sera armazenada a leitura...
byte[] bytes = new byte[(int)file.length()];
// variaveis auxiliares para o processo de leitura...
int offset = 0;
int numRead = 0;
// enquanto nao retorna -1, leia!
while ((numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
// so para saber se chegou ao final da leitura...
System.out.println("n = " + numRead + ", l = " + file.length());
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file " + "Arquivo");
}
// mostra em tela o que foi lido
System.out.println(new String(bytes));
} catch (Exception e) {
}
}
}