Problema con lectura y escritura de ficheros en java
Alguien podria decirme como se puede pasar como parametro "un fichero" para continuar leyendolo desde otra funcion.
En C seria algo asi:
void main () {
FILE *fichero;
fichero = fopen("ejemplo1.c", "r");
if (fichero!=NULL){
Leer_Fichero(fichero);
}
fclose(fichero);
return 0;
}
void Leer_Fichero(FILE *fichero){
char txt[80];
while(!feof(fichero)){
fscanf(fichero,"%s",txt);
}
}
En C seria algo asi:
void main () {
FILE *fichero;
fichero = fopen("ejemplo1.c", "r");
if (fichero!=NULL){
Leer_Fichero(fichero);
}
fclose(fichero);
return 0;
}
void Leer_Fichero(FILE *fichero){
char txt[80];
while(!feof(fichero)){
fscanf(fichero,"%s",txt);
}
}
No se si la cuestión que plantee el otro dia esta bien formulada asà que voy ha especificar un poco mas lo que querÃa preguntar. Mirad es que estoy haciendo una practica para mi universidad y me he quedado encallado en un algoritmo recursivo que habÃa planteado. Este crea un arbol n-ario con la información de un archivo TXT. En cada llamada recursiva se inserta un nodo en el arbol en PREORDEN y para eso leo el fragmento de información que corresponde a ese nodo en el archivo txt. El problema que tengo es que para hacer esto necesito pasar como parametro “el archivo” para que en cada llamada recursiva el algoismo continue leyendo el archivo desde el mismo punto donde lo dejo la anterior llamada. Voy a poner un ejemplo de lo que más o menos planteo, con los errores que he cometido en la práctica.
//archivo con el nombre principal.java
//aquà vendrÃan los imports correspondientes
public class principal{
public static void main (String arg[]){
try{
//ClaseEjemplo en mi practica seria el arbol n-ario
ClaseEjemplo CE=new ClaseEjemplo();
//A continuacion voy a poner la forma en que yo leo
//el fichero.
FileReader FR=new FileReader(Ejemplo.TXT);
BufferedReader BR=new BufferedReader (FR);
//A continuacion le paso el parametro BR a un
//metodo de la ClaseEjemplo. Puede que no se
//pueda hacer asà y que de aquà resida mi error.
CE.MetodoClaseEjemplo(BR);
//cierro el archivo Ejemplo.TXT
BR.close();
}
catch(java.io.IOException e){}
}
}
//archivo ClaseEjemplo.java
public class ClaseEjemplo(){
//aqui vendrian los atributos correspondientes
public ClaseEjemplo(){}//constructor
//Al metodo que viene a continuación le paso como
// parametro un BufferedReader. Creo que no se puede
// hacer asi.
public MetodoClaseEjemplo(BufferReader BR){
String texto=BR.readLine();
}
}
NOTA: Me gustaria que me dijerais que tipo de parametro se le ha de pasar a MetodoClaseEjemplo para que funcionara. O si en vez de FileReader y BufferedReader se habria que utilizar otra cosa.
//archivo con el nombre principal.java
//aquà vendrÃan los imports correspondientes
public class principal{
public static void main (String arg[]){
try{
//ClaseEjemplo en mi practica seria el arbol n-ario
ClaseEjemplo CE=new ClaseEjemplo();
//A continuacion voy a poner la forma en que yo leo
//el fichero.
FileReader FR=new FileReader(Ejemplo.TXT);
BufferedReader BR=new BufferedReader (FR);
//A continuacion le paso el parametro BR a un
//metodo de la ClaseEjemplo. Puede que no se
//pueda hacer asà y que de aquà resida mi error.
CE.MetodoClaseEjemplo(BR);
//cierro el archivo Ejemplo.TXT
BR.close();
}
catch(java.io.IOException e){}
}
}
//archivo ClaseEjemplo.java
public class ClaseEjemplo(){
//aqui vendrian los atributos correspondientes
public ClaseEjemplo(){}//constructor
//Al metodo que viene a continuación le paso como
// parametro un BufferedReader. Creo que no se puede
// hacer asi.
public MetodoClaseEjemplo(BufferReader BR){
String texto=BR.readLine();
}
}
NOTA: Me gustaria que me dijerais que tipo de parametro se le ha de pasar a MetodoClaseEjemplo para que funcionara. O si en vez de FileReader y BufferedReader se habria que utilizar otra cosa.