[ Foro de Java ]
Estoy aprendiendo a utilizar ficheros pero no entiendo por qué me salta error con este código:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Problema2 {
public static void main(String[] args) {
File fichero = BuscarFichero()
public static File BuscarFichero() {
boolean localizado = false;
while(!localizado) {
try {
Scanner input = new Scanner(System.in);
System.out.println("Introduce nombre del fichero");
File ficher = new File(input.next());
return ficher;
localizado = true;
} catch(Exception er){
System.out.println("No se localizó el fichero");
}
}
}
¿Qué error y en qué linea? Si ese es todo el programa, no has cerrado Main. Si no, cambias el valor de localizado después de un "return", por lo que no cambiará.
Tienes razón, está mal eso. Aquí está corregido pero sigue apareciendo error en la línea ''public static File Buscar fichero...''
package practica7;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Problema2 {
public static void main(String[] args) {
File fichero = BuscarFichero();
}
public static File BuscarFichero() {
boolean localizado = false;
while(!localizado) {
try {
Scanner input = new Scanner(System.in);
System.out.println("Introduce nombre del fichero");
File ficher = new File(input.next());
localizado = true;
return ficher;
} catch(Exception er){
System.out.println("No se localizó el fichero");
}
}
}
}
-----------------------------------------------------
El error me dice que la función debe retornar un valor de tipo File, pero ¿no es lo que ya hago con el objeto fich??
Cuando lo intento corregir Java me hace otro return pero con un valor de null de clase File.... pero yo quiero que retorne el fichero... una función puede devolver un fichero? por qué si no no me explico por qué no me deja Java
Sólo lo retornas dentro de "try", y debes devolverlo en cualquier caso. Deberías declarar "ficher" al principio de la función, con valor predefinido "null", y devolverlo al final de la función, porque tu caso del catch no devuelve nada.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)