ejercicios + soluciones en java

Iniciado por .rn3w., 26 Abril 2011, 00:53 AM

0 Miembros y 1 Visitante están viendo este tema.

.rn3w.

lo quieres si o si con recursividad???????

.rn3w.

manejo de archivos...crear un archivo txt e ingresar datos

import java.util.*;
import java.io.*;

public class txt
{
private File archivo;   
public void crear(String nombreCarpeta){
    archivo= new File("D:\\"+nombreCarpeta+".txt");
    try{
        FileWriter escritor = new FileWriter(archivo);
        BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
        ayudaEscritor.close();
    }
    catch(Exception e){}
   
    }
public void ingresar(String nombreCarpeta, String [] datos){
archivo= new File("D:\\"+nombreCarpeta+".txt");
ArrayList<String> campos= new ArrayList<String>();

    try{
       String linea="";
       FileReader leedor= new FileReader(archivo);
       BufferedReader auxLeer= new BufferedReader(leedor);
       FileWriter escritor = new FileWriter(archivo);
       BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
       while((linea=auxLeer.readLine())!=null){
            campos.add(linea);
       }
       for(int a=0;a<=datos.length-1;a++){
            campos.add(datos[a]);
        }
       
        for(int i=0; i<=campos.size()-1; i++){
            ayudaEscritor.write( campos.get(i) );
            ayudaEscritor.newLine();
        }
        ayudaEscritor.close();
    }
    catch(Exception e){}
}
}   

Valkyr

Cita de: bj Wilson A en 12 Septiembre 2011, 21:41 PM
manejo de archivos...crear un archivo txt e ingresar datos

import java.util.*;
import java.io.*;

public class txt
{
private File archivo;   
public void crear(String nombreCarpeta){
    archivo= new File("D:\\"+nombreCarpeta+".txt");
    try{
        FileWriter escritor = new FileWriter(archivo);
        BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
        ayudaEscritor.close();
    }
    catch(Exception e){}
   
    }
public void ingresar(String nombreCarpeta, String [] datos){
archivo= new File("D:\\"+nombreCarpeta+".txt");
ArrayList<String> campos= new ArrayList<String>();

    try{
       String linea="";
       FileReader leedor= new FileReader(archivo);
       BufferedReader auxLeer= new BufferedReader(leedor);
       FileWriter escritor = new FileWriter(archivo);
       BufferedWriter ayudaEscritor= new BufferedWriter(escritor);
       while((linea=auxLeer.readLine())!=null){
            campos.add(linea);
       }
       for(int a=0;a<=datos.length-1;a++){
            campos.add(datos[a]);
        }
       
        for(int i=0; i<=campos.size()-1; i++){
            ayudaEscritor.write( campos.get(i) );
            ayudaEscritor.newLine();
        }
        ayudaEscritor.close();
    }
    catch(Exception e){}
}
}   


¿No sería mejor en el método crear establecer la ruta completamente con el parámetro que se le pasa a la función? De la forma que tú lo tienes estás obligando a que exista el medio D:\\. Por cierto, ¿ese método que es lo que hace exactamente? ¿crear un archivo vacío?.

Saludos.

.rn3w.

pero para que complicarnos si podemos hacer todo en un solo directorio, la busqueda de archivos en varios directorios es muy costoso y respondiendo a la segunda pregunta si es un archivo vacio por que el formato .txt es totalmente libre acomparacion del formato .xml que es de la siguiente manera <a>cuerpo<a>. saludos...

Valkyr

Cita de: bj Wilson A en 14 Septiembre 2011, 02:28 AM
pero para que complicarnos si podemos hacer todo en un solo directorio, la busqueda de archivos en varios directorios es muy costoso y respondiendo a la segunda pregunta si es un archivo vacio por que el formato .txt es totalmente libre acomparacion del formato .xml que es de la siguiente manera <a>cuerpo<a>. saludos...

Si, pero puede ser que la persona que ejecute ese código no tenga un directorio D:\\ y por tanto lance una excepción que además no se trataría.

Por otro lado, porque tanta complicación sin con esto mismo también crearías un archivo vacío:

Código (java) [Seleccionar]

File archivo2 = new File("rutaYNombre" + ".txt");
    try {
archivo2.createNewFile();
} catch (IOException e) {
System.out.println("Imposible crear archivo");
}

Por otro lado, a la hora de ingresar contenido en el archivo, en estas líneas concretamente:

Código (java) [Seleccionar]

while((linea=auxLeer.readLine())!=null){
            campos.add(linea);
       }
       for(int a=0;a<=datos.length-1;a++){
            campos.add(datos[a]);
        }
       
        for(int i=0; i<=campos.size()-1; i++){
            ayudaEscritor.write( campos.get(i) );
            ayudaEscritor.newLine();
        }
        ayudaEscritor.close();


podrías hacerlo directamente no? es decir, hacer esto:

Código (java) [Seleccionar]

while((linea=auxLeer.readLine())!=null){
            ayudaEscritor.write(linea);
            ayudaEscritor.newLine();
       }
       for(int a=0;a<=datos.length-1;a++){
            ayudaEscritor.write(datos[a]);
            ayudaEscritor.newLine();
        }
        ayudaEscritor.close();


De esa forma te ahorrarías el último bucle que sería equivalente a los dos anteriores (creo que a la hora de escribir la información lo haría igual que como tú propones).

Saludos.

.rn3w.

muchas gracias ... por la sugerencia me sirvio de mucho para tener un code mas limpio