Criar Arquivo!

quando eu crio um arquivo

File file = new File("src/arquivo/test.txt"); // o arquivo é criado no diretorio sorce do projeto

Minha dúvida é quando eu gerar o jar onde esse arquivo será gerado?


        File file = new File("./arquivo/test.txt");
        
        try{
            //para criar o arquivo
           file.createNewFile();
        
        }catch(IOException io){
            io.printStackTrace();
        }

Ok! mas minha duvida é se o arquivo que eu criei foi dentro da pasta do projeto quando eu criar o arquivo jar (o aplicativo pronto) onde esse arquivo será gravado se a pasta projeto ficou compactada (jar);


File file = new File("src/arquivo/test.txt");

Será gravado no [working directory]/src/arquivo/test.txt

E esse working directory será o diretório de onde você executou o JAR.

Quer dizer se o jar estiver no Desktop por exemplo o arquivo sera gravado dentro do jar no desktop?

Dentro do JAR não…

Se o working directory = c:\user\x\desktop…

O arquivo será gravado em:

c:\user\x\desktop\src\arquivo\test.txt

Cara eu criei um programa de teste aki para serialização de um objeto esse arquivo test.ser seria gravado no local com falei acima então gerei o jar mas quando clico no botão salvar para gravar o arquivo siplesmente nã faz nada ai então especifiquei outro lugar que não fosse o src salvei em user/renan/*arquivo/test.ser e salvou normalmente! ou seja se eu especificar o arquivo para “test.ser” por exemplo quando gerar o jar não será salvo?

Será salvo… só que quando vc especifica um caminho relativo tem que descobrir relativo a que ele é… ou seja… tem que descobrir onde é o working directory.

No File tem alguns métodos para pegar o caminho completo do aquivo… se nao me engano o getAbsolutePath é um deles… Aí voce descobre onde está sendo salvo…

Aqui vai um tutorial para uso do NIO do java 7

http://blog.globalcode.com.br/2012/03/nio2-do-java-7-uma-nova-api-do-java.html

File file = new File("src/arquivo/test.txt");

Nessa linha de comando o arquivo não é criado, o arquivo só é criado a partir do momento que se usa o método createNewFile.

[quote=rafadelnero]File file = new File("src/arquivo/test.txt");

Nessa linha de comando o arquivo não é criado, o arquivo só é criado a partir do momento que se usa o método createNewFile.[/quote]

Você está certo é que eu apenas coloquei a parte do codigo onde mostra onde os arquivos serao gravados! mas eu crio antes o diretorio com um path e depois com Files.createDiretories… pra depois passar esse codigo! a questão é que quando eu salvo na pasta acima quando executo o jar não faz nada mas quando eu especifico outro lugar fora da pasta do projeto ele grava e lê normalmente!

File file = new File(System.getProperty("user.dir") + "/arquivo/test.txt")

isso vai fazer criar na raiz onde se encontra o jar