Problemas com manipulação de arquivos e diretórios

Bom dia Pessoal. Estou tendo problemas com este tipo de procedimento, abaixo esta o código e o erro:

package alteraarq;
import java.io.*;
/**
 *
 * @author antonio.rocha
 */
public class Main {    
    /** Creates a new instance of Main */
    public Main() {
    }    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here    
            File diretorio = new File("c:\\temp");
            File arquivo = new File(diretorio,"dados.txt");        
            boolean testdir = diretorio.exists();
                if (testdir){
                    System.out.println("O diretório existe");
                }
                else{
                    diretorio.mkdir();                    
                    System.out.println("O diretório foi criado");                    
                }
            boolean testarq = arquivo.exists();           
                if (testarq){
                    FileWriter abre = new FileWriter(arquivo,true);
                    PrintWriter grava = new PrintWriter(abre);                
                    System.out.println("O arquivo já existe e esta pronto para gravação");
                }
                else{
                    arquivo.createNewFile();
                    FileWriter abre = new FileWriter(arquivo,true);
                    PrintWriter grava = new PrintWriter(abre);
                    System.out.println("O arquivo foi criado com sucesso e esta pronto para gravação");
                }                    
    }       
}

Output

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\antonio.rocha\Meus documentos\Minhas Webs\AlteraArq\build\classes
C:\Documents and Settings\antonio.rocha\Meus documentos\Minhas Webs\AlteraArq\src\alteraarq\Main.java:34: unreported exception java.io.IOException; must be caught or declared to be thrown
                    FileWriter abre = new FileWriter(arquivo,true);
C:\Documents and Settings\antonio.rocha\Meus documentos\Minhas Webs\AlteraArq\src\alteraarq\Main.java:39: unreported exception java.io.IOException; must be caught or declared to be thrown
                    arquivo.createNewFile();
C:\Documents and Settings\antonio.rocha\Meus documentos\Minhas Webs\AlteraArq\src\alteraarq\Main.java:40: unreported exception java.io.IOException; must be caught or declared to be thrown
                    FileWriter abre = new FileWriter(arquivo,true);
3 errors
BUILD FAILED (total time: 12 seconds)

Qual é o problema?

Grato

Antônio

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos[/color][/size] :joia:

File diretorio = new File(“c:\temp”);

coloque assim
File diretorio = new File(“c:/temp”);

FileWriter, createNewFile, PrintWriter levantam IOException … vc deve capturalas

Como faço esta captura?

Dentro de um bloco try/cathc

da uma olhada na API e v quais excessoes que eles metodos podem gerar pra vc poder capturar dentro d um try/catch

Valeu galera, deu certo. Só queria uma explicação rápida, teoricamente pra que serve o Try/catch?

Muito obrigado

qndo vc tenta acessar um arquivo, pode aconteceer por exemplo de alguem apagar antes do seu programa acabar, o arquivo sei la corromper, alguem tirar o disquete do drive, tirar o cabo de rede do micro q vc qr acessar o arquivo etc:roll:
n coisas podem acontecer,
o try(tentar) diz para o programa assim:
-Ei, tenta acessar o arquivo tal:!:

se deu certo, blz, se nao deu, ele retorna um erro, mas nao quebra sua execucao no meio,
vc pode ate mostrar uma mensagem dizendo para o usuario tentar novamente :grin:

espero ter ajudado
flw

Jorge Motta dos Santos