Erro de io continuação!

8 respostas
D

Minha IOException está dando este erro

Erro de IO: java.io.FileNotFoundException: (O caminho especificado nÒo é valido)
Arquivo nÒo gravado

este é o código,

//Criando o arquivo txt

System.err.println(Aguarde, gravando o resultado em um arquivo texto);

FileInputStream stream = new FileInputStream(saida);

InputStreamReader streamReader = new InputStreamReader(stream);

BufferedReader reader = new BufferedReader(streamReader);
FileWriter escrevearquivo = new FileWriter("normalizacao_ddd.txt"); 
    PrintWriter saidaarquivo = new PrintWriter(escrevearquivo); 
	    	
rs.close();
stmt.close();	
conn.close();
saidaarquivo.close(); 
    escrevearquivo.close();
    reader.close(); 
    streamReader.close(); 
    stream.close();

como posso resolver isto?

8 Respostas

Rafael_Steil

“darta.lima”:
Minha IOException está dando este erro

Erro de IO: java.io.FileNotFoundException: (O caminho especificado nÒo é valido)
Arquivo nÒo gravado

Repare na exception: FileNotFoundException, e após na mensagem de erro: o caminho especificado não é válido. A exception FileNotFoundException é gerada pelas classes FileInputStream, FileOutputStream ou RandomAccessFile. Como no seu código você tem uma chamada a FileInputStream

FileInputStream stream = new FileInputStream(saida);

muito provavelmente é ai que o erro esta ocorrendo. Qual no conteudo da variávem “saida”? Ela contem um nome de arquivo válido E EXISTENTE? não se esqueca que FileInputStream requer que o arquivo a ser aberto exista.

De qualquer maneira, como você esta querendo gravar o conteúdo lido em um arquivo, por favor RETIRE as seguintes linhas de código do seu programa:

InputStreamReader streamReader = new InputStreamReader(stream); 
    	BufferedReader reader = new BufferedReader(streamReader);

Note que você apenas irá precisar de

FileWriter escrevearquivo = new FileWriter("normalizacao_ddd.txt"); 
        PrintWriter saidaarquivo = new PrintWriter(escrevearquivo);

para gravar o conteúdo lido. Para gravar ja lhe mostramos anteriormente como fazer, ou seja, coloque uma chamada a

saidaarquivo.println(variaveis contendo os dados);

dentro do loop while() onde os dados do banco de dados são lidos. Apenas para finalizar, como você vai remover as chamadas a FileInputStream e BufferedReader, nao se esqueça de remover também as linhas

reader.close(); 
        streamReader.close(); 
        stream.close();

Boa sorte, você esta quase conseguindo!!

[]'s
Rafael Steil

D

Rafael, aqui etá meu while até a criação do txt e seu fechamento.

O saida, é uma variável que eu criei e está recebendo to o conteúdo do meu while, se descomentar o System.out.println ele me mostra tudo direitnho, então pensei que teria que jogar este cara dentro de uma variável e mandar gravar em um txt?? Não sei se estou fazendo certo, o saida tem todo o conteúdo que eu preciso!!

//Declaração das variáveis do programa

String codbrick = null;

String dscbrick = null;

String repetecodigobrick = null,repetedscbrick = null,repetedscproduto = null,repetecodproduto = null,repetecodclasse = null;

String datavalor1 = null,datavalor2 = null,datavalor3 = null,datavalor4 = null,datavalor5 = null,datavalor6 = null,datavalor7 = null;

String saida = null;

//fim

//Exibe o cabeçalho das colunas

<a href="//System.out.println">//System.out.println</a>("COD_BRICK	"+"DSC_BRICK	"+“DSC_PRODUTO”);

//Fim

while(rs.next())

{

String codigo = rs.getString(COD_BRICK);

if(codigo.equals(4.0))

{	

codbrick = rs.getString(DSC_BRICK);

dscbrick = rs.getString(DSC_PRODUTO);

<a href="//System.out.println">//System.out.println</a>(“Achamos um 4: " + codbrick + “/” + dscbrick);

}

else

if (codigo != (4.0))

{

repetecodigobrick = codbrick;

repetedscbrick = dscbrick;

repetedscproduto = rs.getString(DSC_PRODUTO);

repetecodproduto = rs.getString(COD_PRODUT);

repetecodclasse = rs.getString(COD_CLASSE);

datavalor1 = rs.getString(09/2001);

datavalor2 = rs.getString(10/2001);

datavalor3 = rs.getString(11/2001);

datavalor4 = rs.getString(12/2001);

datavalor5 = rs.getString(01/2002);

datavalor6 = rs.getString(02/2002);

datavalor7 = rs.getString(03/2002);

<a href="//System.out.println">//System.out.println</a>(repetecodigobrick+”	“+repetedscbrick+”	“+repetedscproduto+”	“+repetecodproduto+”	“+repetecodclasse+”	“+datavalor1+”	“+datavalor2+”	“+datavalor3+”	“+datavalor4+”	“+datavalor5+”	“+datavalor6+”	“+datavalor7);

saida = (repetecodigobrick+	+repetedscbrick+	+repetedscproduto+	+repetecodproduto+	+repetecodclasse+	+datavalor1+	+datavalor2+	+datavalor3+	+datavalor4+	+datavalor5+	+datavalor6+	"+datavalor7);

}

}

//Criando o arquivo txt

System.err.println(“Aguarde, gravando o resultado em um arquivo texto”);

FileInputStream stream = new FileInputStream(saida);
FileWriter escrevearquivo = new FileWriter("normalizacao_ddd.txt"); 
    PrintWriter saidaarquivo = new PrintWriter(escrevearquivo); 
	    	
rs.close();
stmt.close();	
conn.close();
saidaarquivo.close(); 
    escrevearquivo.close();
    stream.close();
Rafael_Steil

Olá novamente,

Retire do seu código as linhas

FileInputStream stream = new FileInputStream(saida);
stream.close();

Agora mova as linhas

FileWriter escrevearquivo = new FileWriter(“normalizacao_ddd.txt”);
PrintWriter saidaarquivo = new PrintWriter(escrevearquivo);

para ANTES do início do while(). Agora, coloque a linha

saidaarquivo.println(saida);

dentro do if() onde vc cria o conteúdo da variável “saida”.

Pronto!!! Seu código deverá ficar mais ou menos assim:

//Declaração das variáveis do programa
// CODIGO REMOVIDO PRA FICAR MENOR O EXEMPLO
//Exibe o cabeçalho das colunas
//System.out.println("COD_BRICK "+"DSC_BRICK "+"DSC_PRODUTO");

FileWriter escrevearquivo = new FileWriter("normalizacao_ddd.txt");
PrintWriter saidaarquivo = new PrintWriter(escrevearquivo);
System.err.println("Aguarde, gravando o resultado em um arquivo texto");

while(rs.next())
{
    String codigo = rs.getString("COD_BRICK");

    if(codigo.equals("4.0"))
    {
        codbrick = rs.getString("DSC_BRICK");
        dscbrick = rs.getString("DSC_PRODUTO");
    }
    else
    if (codigo != ("4.0"))
    {
        repetecodigobrick = codbrick;
        repetedscbrick = dscbrick;
        repetedscproduto = rs.getString("DSC_PRODUTO");
        repetecodproduto = rs.getString("COD_PRODUT");
        repetecodclasse = rs.getString("COD_CLASSE");
        datavalor1 = rs.getString("09/2001");
        datavalor2 = rs.getString("10/2001");
        datavalor3 = rs.getString("11/2001");
        datavalor4 = rs.getString("12/2001");
        datavalor5 = rs.getString("01/2002");
        datavalor6 = rs.getString("02/2002");
        datavalor7 = rs.getString("03/2002");

        saida = (repetecodigobrick+" "+repetedscbrick+"                     "+repetedscproduto+" "+repetecodproduto+" "+repetecodclasse+" "+datavalor1+" "+datavalor2+" "+datavalor3+" "+datavalor4+" "+datavalor5+" "+datavalor6+" "+datavalor7);

        saidaarquivo.println(saida);
    }
}

rs.close();
stmt.close();
conn.close();
saidaarquivo.close();
escrevearquivo.close();

[]'s
Rafael Steil

D

Valeu , Rafa, funcionou… desculpe a encheção de saco, mas iniciante é assim mesmo, quem não teve dificuldades.

Valeu a todos e até a próxima.

Ao Guilherme também, se não fosse por ele, não teria consseguido.

Um abraço a todos.
Dartanhan.

Guilherme_Silveira

entao nao foi ate sexta, mas segunda… valeu? :slight_smile:

abraco

gui

D

É isso ai Gui, muito obrigado por sua atenção, e desculpe por meus tropeços, valeu mesmo.

Esse foi um, tem mais outro que preciso fazer também, mas ele é um pouco diferente, vou começar a desenvolvê-lo e qualquer coisa eu grito, claro se não houver problema??

Valeu Gui, um abração.

Paulo_Silveira

o guj esta aqui pra isso!!

soh pedimos em troca a divulgacao entre seus colegas!

valeu

pedromuyala

Paulo Silveira:
“darta.lima”:

Esse foi um, tem mais outro que preciso fazer também, mas ele é um pouco diferente, vou começar a desenvolvê-lo e qualquer coisa eu grito, claro se não houver problema??

o guj esta aqui pra isso!!

soh pedimos em troca a divulgacao entre seus colegas!

valeu

Estava em busca por tipos de erros no GUJ e olha a raridade que achei!

Legal né? :smiley: Hoje o GUJ com mais de 710 Mil postagens e mais de 63 mil usuários.
Quantas pessoas já estiveram aqui, em algum momento da vida, pedindo ajuda, contribuindo ou somente lendo os tópicos.
Por isso eu me encanto com a magia que essa comunidade do GUJ proporciona as pessoas. Estão todos de parabéns! :thumbup:
Sucesso!

Criado 7 de setembro de 2002
Ultima resposta 28 de jul. de 2009
Respostas 8
Participantes 5