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.
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();
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.