Assumindo o seguinte código:
70. class MakeFile {
71. public static void main(String[] args) {
72. try {
73. File directory = new File(“d”);
74. File file = new File(directory, “f”);
75. if(!file.exists()) {
76. file.createNewFile();
77. }
78. } catch (IOException e) {
79. e.printStackTrace
80. }
81. }
82. }
O diretório atual não contém um diretório nomeado “d”. Quais alternativas a seguir podem ser consideradas corretas?
A. Linha 76 nunca é executada.
B. Uma exceção é disparada em tempo de execução.
C. Linha 73 cria um objeto File nomeado “d”.
D. Linha 74 cria um objeto File nomeado “f”.
E. Linha 73 cria um diretório nomeado “d” no sistema de arquivos.
F. Linha 76 cria um diretório nomeado “d” e um arquivo “f” dentro do sistema de arquivos.
G. Linha 74 cria um arquivo nomeado “f” dentro do diretório nomeado “d” no sistema de arquivos.
No enunciado da questão é informado que não há um diretório “d” criado no diretório atual do programa. Com essa informação, a alternativa G já pode ser descartada visto que a aplicação só está acessando o diretório atual (pelo que é apontado nas instanciações dos objetos de File) e não há diretório “d” criado anteriormente. E este mesmo diretório não pode ser criado por esse programa, nem na instanciação do objeto diretorio, nem no comando da linha 76. Nessa situação, somente seria possível a criação de um arquivo (neste caso o que é referenciado pelo objeto file), caso o diretório “d” já existisse. Essa última informação inviabiliza as alternativas E e F.
Mesmo não existindo o diretório “d” e o arquivo “f”, é possível instanciar os objetos directory e file. O único problema ocorrerá quando se tenta acessar o arquivo físico apontado por esses objetos. Esse momento acontece na execução da linha 76 (criação de novo arquivo), em que não há acesso ao arquivo real e dispara-se uma exceção em tempo de execução. Dessa maneira, a alternativa A se mostra incorreta enquanto B se apresenta como uma das alternativas corretas. As demais são as opções C e D, que não provocam erros no programa.
Alternativas corretas: B, C, D.
Nenhum comentário:
Postar um comentário