Criaçao arquivo TxT[Resolvido]

Galera eu tinha postado em um outro topico sobre arquivos de texto mas parece que ele foi deletado, apos a ajuda de alguns fiz o programa abaixo so que ao compilar esta dando erro no main , a proposta seria : criar um arquivo de texto , mostrar uma frase digitada pelo usuario e fechar o arquivo de texto. Espero que alguem possa me ajudar a detectar esse erro, obrigado.

Pelo que percebi, você não chega a criar o arquivo. Para isso:

String texto = "Sua frase aqui"; File arq = new File(caminho, nomeArquivo); BufferedWriter bf = new BufferedWriter(new FileWriter(arq)); bw.write(texto); bw.flush(); bw.close();

OBS: Não testei o código…

pronto o codigo ficou assim:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javaapplication27;

/**
 *
 * @author Matheus
 */ 
import java.io.*;
import java.util.Scanner;

public class Main {

    /**
     * @param args the command line arguments
     */
   
    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    String frase;

    System.out.printf("Digite uma frase:");
    frase = input.next();
    
    File arq = new File("c:\", "arquivo.txt");
    BufferedWriter bf = new BufferedWriter(new FileWriter(arq));
    bf.write(frase);
    bf.flush();
    bf.close();

    }

Qual o erro??? apartir da linha 30 esta dando errado flando pra adicionar io.Exception… nao intendi isso , o arquivo txt continua nao sendo gerado.

da uma força ai galera

estudante000001, boa tarde!

O contrutor de FileWriter que você está chamando na linha 30 lança uma IOException e você precisa tratá-la. Essa Exception pode ser lançada por vários motivos, como o arquivo existir, mas não poder ser aberto ou não existir e não poder ser criado ou até mesmo se o caminho que foi passado ao File não caracterizar um arquivo.

Então para tratar uma Exception você precisa usar TRY/CATCH, no teu caso você deve substituir a linha 30 por isso:

try{ BufferedWriter bf = new BufferedWriter(new FileWriter(arq)); }catch(IOException ioe){ System.outi.println(e.getMessage()); // Aqui você define o que fazer caso um IOException for lançada // Nesse caso estão imprimindo a mensagem de erro. }

Faça isso e veja se resolve teu problema.

[]'s

acho que faltou jogar um throw IOException ali
tenta ae

[code]import java.io.*;
import java.util.Scanner;

public class Main {

/** 
 * @param args the command line arguments 
 */  
 
public static void main(String[] args) throws IOException {  

Scanner input = new Scanner(System.in);  
String frase;  

System.out.printf("Digite uma frase:");  
frase = input.next();  
  
File arq = new File("C:\" , "Arquivo.txt");  
BufferedWriter bf = new BufferedWriter(new FileWriter(arq));  
bf.write(frase);  
bf.flush();  
bf.close();  

}  

}[/code]

continua dando problema esse TRY/CATCH na linha 30 nao resolveu

Opa, desculpa!

Você tem que tratar assim:

try{ BufferedWriter bf = new BufferedWriter(new FileWriter(arq)); bf.write(frase); bf.flush(); bf.close(); }catch(IOException e){ System.outi.println(e.getMessage()); }

Mas o que o amigo caematos falou também funciona, porém você não tratará a Exception da maneira quiser, por exemplo pedindo para o usuário usar outro nome de arquivo.

No caso que ele indicou, você passa a Exception para a classe FileWriter tratar.

Ab

Vingdel
obrigado pela ajuda ai.

O codigo continua n funcionando pra mim mas parece que eh uma questao de permissao, pq pra outros ele funciona normalmente, me aconselharam a abrir o netbeans como administrador como faço isso?

[quote=estudante000001]Vingdel
obrigado pela ajuda ai.

O codigo continua n funcionando pra mim mas parece que eh uma questao de permissao, pq pra outros ele funciona normalmente, me aconselharam a abrir o netbeans como administrador como faço isso?[/quote]

Se for no windows 7 clica com o batao direito no icone do netbeans e vai em “execurtar como administrador”
se for no windows xp vai em “executar como…” ae escolhe administrador…

espero que seja isso

Meu caro, com o código que te passei, usando o TRY/CATCH, se tiver algum problema com o arquivo, você vai receber a segunte mensagem:

[quote]C:\Users\Delano\Desktop>java Main
Digite uma frase:www
C:\Users\Delano\Desktop\Arquivo.txt (Acesso negado)[/quote]

Aí, sim, é problema de permissão. Para eu receber esse erro propositalmente setei o arquivo “Arquivo.txt” para “Somente Leitura”.

Mas acho que na unidade C:, que é o caminho que você setou para o arquivo, não deveria ter restrição para criação de arquivo. De qualquer forma veja aí.

Usando o método de passar a responsabilidade da excessão para outro (throws), a mensagem é a seguinte:

[quote]C:\Users\Delano\Desktop>java Main
Digite uma frase:ddd
Exception in thread “main” java.io.FileNotFoundException: C:\Users\Delano\Deskto
p\Arquivo.txt (Acesso negado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.(Unknown Source)
at java.io.FileOutputStream.(Unknown Source)
at java.io.FileWriter.(Unknown Source)
at Main.main(Main.java:20)[/quote]

Caso já não haja dúvida quanto ao assunto, por favor adicione [RESOLVIDO] ao assunto do tópico. Acho que você poderia melhorar o assunto também para que o tópico sirva como referência a alguém com a mesma dúvida.

Abraço e boa sorte.

nem vi que o Vindgel tinha postado antes ali… hehe…

deve ser problema de permissão sim… tenta mudar para a pasta Documentos

“C:\Users\SeuUser\Documents” Se for no Win 7