No FileReader, há diferença entre os contrutores String ou File?

6 respostas
souarte

vi na API que FileReader pode ter um construtor String ou File. qual a diferença entre usar esses dois? dá no mesmo?

brigadu!

6 Respostas

antoniopopete

FileReader
public FileReader(String fileName)
throws FileNotFoundExceptionCreates a new FileReader, given the name of the file to read from.

Parameters:
fileName - the name of the file to read from
Throws:
FileNotFoundException - if the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.


FileReader
public FileReader(File file)
throws FileNotFoundExceptionCreates a new FileReader, given the File to read from.

Parameters:
file - the File to read from
Throws:
FileNotFoundException - if the file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.

A diferença é que passando a String você está passando o nome do arquivo de onde o fileReader vai pegar as informações.

Passando o objeto File você passará o arquivo diretamente.

souarte

isso tudo bem, mas queria saber se isso implicaem diferenças na prática. na prática eu poderia usar qualquer um? que sempre será a mesma coisa?

ViniGodoy

Dica. Para resolver dúvidas como essa, veja o código de cada um deles (esta é uma das grandes vantagens do Java ser OpenSource):

public FileReader(String fileName) throws FileNotFoundException {
   super(new FileInputStream(fileName));
}

public FileReader(File file) throws FileNotFoundException {
    super(new FileInputStream(file));
}

Você também pode estar se perguntando se o InputStream trata de maneira diferente, nesse caso, abrindo o código do InputStream você acharia:

public FileInputStream(String name) throws FileNotFoundException {
        this(name != null ? new File(name) : null);
    }

Ou seja, o construtor do FileInputStream que recebe um string chama o construtor que recebe um file.
Então, não há diferença em usar um e outro. Use o que for mais conveniente para você.

jgbt

vamos pensar juntos:
um FileReader precisa de um File certo?
o que a API faz é te disponibilizar diferentes maneiras de usa-lo.
se vc usar o construtor que recebe um File, ele ja vai usa-lo diretamente, se vc usar o construtor que recebe uma String ele deve fazer:

File f = new File("parametro");

e depois usa-lo.
na pratica não faz diferenca nenhuma.

[]´s

souarte

caras!
obrigado pelas dicas! espero um dia saber ao menos a metade do que vocês sabem!

T

Para aprender a metade que eles sabem, basta pegar a metade das fontes que eles usam para consultar, ou seja, o Javadoc.

http://java.sun.com/j2se/1.5.0/docs/api/index.html

Criado 26 de novembro de 2007
Ultima resposta 26 de nov. de 2007
Respostas 6
Participantes 5