Caminho de arquivo: usar tipo File ou String

7 respostas
renatosilva

Qual tipo de argumento vocês acham melhor:

Com File

private void saveToFile(File f) {
    // salva
}
private void saveToFile(String fileName) {
    // cria o File internamente, sei lá...
}

Na chamada do método, acho feio isso:

saveToFile(new File("dolores.xml"))

Fica melhor assim:

saveToFile("dolores.xml")

7 Respostas

Rafael_Steil

Suporte os dois… No que receber uma String, vc delega para o que recebe um File ( passando new File(…) )

Rafael

renatosilva

Mas para quê serviria um argumento File?

Aliás, para quê serve um File?

Como eu salvo um texto em um arquivo?

Daniel_Quirino_Olive

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html

Sobre manipulação de arquivos:
http://javaalmanac.com/egs/java.io/pkg.html#Reading%20and%20Writing

Rafael_Steil

Para os casos onde alguem ja tivesse uma instancia de um File?

Para representar um arquivo ou diretorio? veja o link que o Daniel passou.

Uma maneira eh usar BufferedWriter. ( Google nows ).

Rafael

cv1

Que tal usar um nome de metodo diferente? Ai a coisa toda anda direitinho:

public void saveTo(File file);

Assim, pra usar fica mais bonitinho:

foo.saveTo(new File("arquivo.txt"));

Ajudou? :wink:

renatosilva

Interessante a idéia do cv

Parece que o File é uma abstração multi-plataforma para caminhos de arquivos e pastas. Vou ver se dou uma olhada melhor nisso depois.
Mas mesmo assim me parece meio exagerado sei lá.

Só falta eu aprender a salvar arquivos, mas acho que isso vai ficar pra amanhã

Lucas_Teixeira

Eu fico com a idéia do Rafael com a sobrecarga do método para este caso.
Mas mesmo assim para um usuário dummy, porque sinceramente se vc tá trabalhando com arquivo, é File e pronto. qualquer coisa que precise dele lá dentro do método como File, terá que instanciar um file, então já passe assim. No caso de precisar da string… o grande e glorioso pai-de-todos toString() faz isso para vc.

Sobrecarga é legal, mas na minha opinião, pode poluir o codigo caso o programado ache bonitinho suportar várias chamadas.

Criado 27 de dezembro de 2004
Ultima resposta 27 de dez. de 2004
Respostas 7
Participantes 5