Leitura de arquivo para variavel

2 respostas
D

Pessoal, meu problema é o seguinte:
Estou querendo armazenar o conteúdo de qualquer arquivo que seja (.txt, .exe, .jpg, etc) em uma variavel (não sei direito qual tipo usar).

Acho que usar o objeto BufferedReader para ler linha a linha não vai funcionar para arquivos de tipos como .exe, .jpg etc.

Se alguem puder ajudar eu agradeço!

Vlw

2 Respostas

T

Você quer ler um arquivo inteiro para um array de bytes? Boa sorte. O código abaixo lê arquivos de no máximo 2 GB, isso se a memória do Java permitir. O código abaixo não tem o tratamento das exceções.

File f = new File ("seu.arquivo.gigante");
int tamanho = (int) f.length();
byte[] bytes = new byte[tamanho];
InputStream is = new FileInputStream (f);
is.read (bytes);
is.close();
D

Valeu cara!
Agora o problema maior. Quero jogar o conteudo desse cara pra dentro de um campo de uam tabela no sqlserver 2005.

Criei o campo lá como Nvarchar(max) pra não da problema de tamanho … e estou tentando usar o setNString do objeto PreparedStatement. Mas ele fica dando erro porque espera um tipo String. Tentei usar o setBinaryStream que recebe o InputStream no qual tenho o conteudo do arquivo … mas mesmo assim da erro e não sei porque.

Fumaçando a cabeça aqui já …

Criado 19 de novembro de 2008
Ultima resposta 19 de nov. de 2008
Respostas 2
Participantes 2