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