Iluminando los rincones del sin saber

Conocimientos liberados sólo para copiar y pegar, aprender y compartir es lo importante

Crear archivos de texto java

Con lo de crear quiero indicar escribir sobre un archivo de texto, o ya bien sea, aunque tambien puede crear un archivo de texto y no escribirle nada, aunque no es muy logico, jejeje.  Para hacer esto se puede hacer de varias forma, yo prefiero utilizar un String para mandar a leer y escribir a un archivo, ya que de esa manera puede utilizar el tokenizer y hacer un escanner mas facilmente, aunque si se desea un escanner y parser mas completo se debe de usar herramientas como JLex y Cup (Medio controlo eso por si necesitan ayuda, ojala que me recuerde nada mas, XD).

Para escribir este es un método, llamado Abrirá, al cual le deben de pasar como parámetro la dirección del archivo, este método solo carga el contenido de un archivo de texto desde una ubicacion especifica a un string:

public String Abrira(String Dir){

String Llevo_Texto = new String(“”);
try{
FileReader Carga_Escritura = new FileReader(Dir);
BufferedReader Lev_Text = new BufferedReader(Carga_Escritura);
String Llevo_Otro = new String();

while((Llevo_Otro = Lev_Text.readLine())!=null){

if(Llevo_Texto == null){
Llevo_Texto = Llevo_Otro;
}
if(Llevo_Texto != null){
Llevo_Texto = Llevo_Texto + Llevo_Otro + “\n”;
}
}

Lev_Text.close();
Carga_Escritura.close();
}

catch(FileNotFoundException e){
System.out.println(“El Archivo No se encontro”);
}
catch(IOException e){
System.out.println(“ERROR: No se puede leer el archivo”);
}
return Llevo_Texto;
}

Para llamar a este metodo seria:      VarInstanceada.Abrira(“C:\entrada.txt”);

Si se desea escribir en un archivo de texto, seria:

public boolean  Guardara(String Conte, String Dir){
if(Directo != “”)
Dir = Directo + Dir;

boolean Est;
try{
FileWriter Carga_Escritura = new FileWriter(Dir);
BufferedWriter Lev_Text = new BufferedWriter(Carga_Escritura);

if(Conte == null){
Conte = “”;
}

Lev_Text.write(Conte);
Lev_Text.close();
Carga_Escritura.close();

Est = true;
}

catch(FileNotFoundException e) {
System.out.println(“El Archivo No se encontro”);
Est = false;
}
catch(IOException e){
System.out.println(“ERROR: No se puede leer el archivo”);
Est = false;
}

return Est;
}

Se usa un boolean para validar si se logro guardar o no.  Este metodo crea archivos y les inserta texto, si se desea agregar mas contenido a un archivo bastara con, abrir primero el archivo y guardar el contenido en algun lado y luego volver a crear el archivo (Con el mismo nombre) y escribir lo que tenia antes y luego agregandole lo que deseemos.  Como siempre es mas facil ver esto en codigo, asi que les dejo mi clase de manejar archivo.

Si deseas ver como se hace para abrir ventanitas de abrir y guardar esta este post

About these ads

12 Respuestas a “Crear archivos de texto java

  1. Dina 30 octubre 2009 en 8:59 pm

    hola, tengo algunas preguntas, necesito saber el codigo y como crear un archivo en java, como buscar un archivo, leer el archivo y eliminar. si me puden ayudar, se los agradecere.

  2. ppedrodom 30 octubre 2009 en 11:14 pm

    @Dina Para crear un archivo esta este post, para buscar un archivo podes ver el post anterior, ya que esa te abre ventanitas para seleccionar el archivo, con respecto de eliminar un archivo, utilizas la clase de java.io.File

    File archivo = new File(Path);

    try{
    archivo.delete();
    } catch (Exception e) {
    // Capturas la excepción, por si ocurre algun error, y no deja borrar
    }

  3. Ignacio 6 noviembre 2009 en 10:06 am

    hola….
    tengo un script en donde le pongo la dirección de ip que quiero bloquear y a donde la redirijo.
    Ahora tengo varios cientos numeros de ip que corresponden a un pais.
    El asunto es que si pongo todos estos números la pagina no termina de cargar nunca, entonces pense en poner esos numeros en en .txt y llamarlos desde el java pero nose como hacerlo. abajo esta el codigo que uso para redireccionar

    //Tienes que tener la IP que quieres bloquear:
    //var IP_user=”xx.xx.xx.xx”;
    File pep=new File(“http://www.cowhideargentina.com/eeuu.txt”);
    if(IP_user==””)url=”accesoDenegado.htm”;
    else url=”/es/index.php”;
    top.location.replace(url);

  4. ppedrodom 6 noviembre 2009 en 12:03 pm

    @Ignacio Puedes resolverlo por medio de la Base de Datos, ingresas los campos IP y destino, y luego en la petición cuando te ingresen la IP, devuelves el destino, de esta forma puedes agregar mas IP y destinos como lo desees, o se requiera y vuelves mas modular tu aplicación.

    Por otra parte, puedes ingresar las IP’s y destinos en el archivo de texto, separandolos con caracteres especiales, algo como “192.xxx.xxx.xxx#destino”, y luego “parsear” el archivo y separar las IP y los destinos por medio del carácter “#” y los saltos de linea, pero eso implica que tengas que recorrer siempre el archivo de texto, lo cual se vuelve lento en tiempo de ejecución y afecta en tu rendimiento.

  5. Ignacio 6 noviembre 2009 en 2:14 pm

    Desde ya muchas gracias por tu pronta respuesta. Si he probado con una base de datos, pero solo me devuelve el dato de donde es el usuario no lo redirecciona.
    La idea es que si sos de españa automaticamente de redireccione el sitio en español y si sucesivamente si sos de eeuu a la pag para eeuu.

  6. ppedrodom 6 noviembre 2009 en 2:34 pm

    @ignacio No muy te entiendo, si obtenes el dato de la IP donde es el usuario, solo es cuestión de que hagas un “if”. Aunque seria mas facil tener una tabla de la siguiente manera.

    Nombre:
    XXXXXX
    Campos:
    ip_origen
    url_destino

    Entonces en base a la ip_origen, haces una consulta a la base de datos con la ip_origen y estarías devolviendo la url destino, algo así te quedaría

    top.location.replace(XXXX.ur_destinol);

  7. Ignacio 6 noviembre 2009 en 2:54 pm

    hola de nuevo, realmente no lo puedo resolver. este es el codigo que uso para consultar la base de datos y supuestamente redireccionar seguen el pais de usuario.
    Pero me salta suempre error en la linea del primer
    case
    switch ($country) {
    case ‘ar’:
    si no es mucha molestia fijate y me avisas en que me estoy equivocando gracias

    <?php

    $server = ''; // MySQL hostname
    $username = ''; // MySQL username
    $password = ''; // MySQL password
    $dbname = ''; // MySQL db name

    $db = mysql_connect($server, $username, $password) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());

    $sql = 'SELECT
    c.country
    FROM
    ip2nationCountries c,
    ip2nation i
    WHERE
    i.ip

  8. Ignacio 6 noviembre 2009 en 2:56 pm

    WHERE
    i.ip

  9. Ignacio 6 noviembre 2009 en 2:56 pm

    bue si me pasas tu correo seria mejor porq no me deja pegar todo el codigo jeje :P

  10. ruben 29 febrero 2012 en 7:07 pm

    Se puede crear un archivo con formato, me refiero a cambiar la fuente y el tamaño de esta. Desde ya muchas gracias.

  11. ppedrodom 29 febrero 2012 en 11:11 pm

    Sí se puede, aunque con este método no exactamente (o no lo conozco), si quieres crear un documento con formato podrías utilizar jasper reports (ireports si deseas usar un IDE para facilitarte el asunto y luego sólo llenarlo, o no sé si es por otra vía tu pregunta).

  12. ruben 1 marzo 2012 en 9:00 am

    Si esa era mi pregunta, lo que pasa que tengo una impresora por puerto paralelo y para cortar el papel utiliza la fuente llamada “Control”, de hecho tengo un programa hecho en vb6 que hacia esto sin problemas, pero en java no encontrado nada he probado varias formas. Pero por ejemplo en printerjob intente cambiar la fuente pero no me funciono, tal vez porque utilizaba el metodo drawString, lo que si de reports habia leido pero ahora investigare.
    P.D tambien trate con flie y printstream y ninguno da formato a los textos.
    Gracias por tu ayuda.
    Mucha suerte que estes bien.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: