Vaciar el contenido de un fichero con Java Julio 31, 2010
Publicado por lineadecodigo en : Java , 2 comentariosNos llegaba una pregunta vía comentarios sobre como vaciar el contenido de un fichero con Java. Y nos pusimos manos a la obra.
El procedimiento es muy sencillo. Lo primero que tenemos que hacer es abrir un stream de escritura sobre el fichero. Para ello necesitaremos de un FileWriter y un BufferedWriter.
Una vez que tenemos el stream sobre el BufferedWriter lo que vamos a hacer es escribir una línea vacía. Para ello utilizamos el método .write().
bw.write("");
Así lo que conseguimos es machacar todo el contenido que pudiese existir en el fichero. Vaciándolo de su contenido actual. Ahora, no hay que olvidarnos de cerrar nuestro fichero. Esto lo hacemos mediante el método .close() del BufferedWriter.
bw.close();
Y ya hemos conseguido vaciar el contenido de un fichero con Java.
Ojo, hay que tener cuidado de que el fichero exista o se nos generará una excepción FileNotFoundException o IOException.
|- Descargar el código|- Reportar error en el código
|- Foro sobre Java IO
Comparar el contenido de dos ficheros con Java Julio 30, 2010
Publicado por lineadecodigo en : Java , 3 comentariosEn este ejemplo vamos a ver como podemos comparar el contenido de dos ficheros de texto con Java y comprobar si el contenido es el mismo o es diferente.
Lo primero será crear una clase del tipo FileReader. Esta clase nos va a ayudar a acceder al contenido de los ficheros, conjuntamente con un BufferedReader. De esta forma crear un stream de un fichero a un BufferedReaderr lo podemos hacer con el siguiente código:
Como tenemos dos ficheros, repetimos la misma sentencia para el segundo fichero:
Ahora que tenemos un BufferedReader será sencillo ir leyendo el contenido del fichero, ya que solo tendremos que ir lanzando el método readLine() hasta que lleguemos al final de los ficheros.
Así recorreremos los ficheros mientras lo leído no sea null, ya que significará que hemos llegado al final del fichero, o bien que asumamos que los ficheros siguen siendo iguales, lo cual controlaremos mediante una variable de bandera que denominaremos iguales.
De esta manera el bucle para recorrer los ficheros será de la siguiente forma:
sCadena1 = bf1.readLine(); sCadena2 = bf2.readLine(); while ((sCadena1!=null) && (sCadena2!=null) && iguales) {...}
Dentro del bucle compararemos las líneas almacenadas en las cadenas. Si las líneas son iguales asumiremos que los ficheros siguen siendo iguales, leeremos e iteraremos otra vez.
Si las líneas no son iguales significa que el contenido es diferente. En ese caso cambiaremos el valor de la variable iguales a "false" para provocar una salida del bucle.
El código quedará de la siguiente manera:
sCadena1 = bf1.readLine(); sCadena2 = bf2.readLine(); while ((sCadena1!=null) && (sCadena2!=null) && iguales) { if (!sCadena1.equals(sCadena2)) iguales = false; sCadena1 = bf1.readLine(); sCadena2 = bf2.readLine(); }
Una vez hemos salido del bucle sabremos que los ficheros son iguales si la variable iguales sigue siendo true y si hemos llegado al final de la lectura de los dos ficheros, es decir, que las variables de lectura contengan un valor null. Así tendremos el siguiente código:
if ((iguales) && (sCadena1==null) && (sCadena2==null)) else
En todo este código tenemos que tener cuidado ya que podemos tener excepciones FileNotFoundException, si los fichero a leer no existen o IOException si tenemos problemas en la lectura de los mismos. Es por ello que todo el código irá dentro de su estructura try-catch.
|- Descargar el código|- Reportar error en el código
|- Foro sobre Java IO
Sumar matrices en Java Julio 28, 2010
Publicado por lineadecodigo en : Java , Hasta ahora 1 comentarioSeguimos con los ejemplos de matrices, ahora que ya hemos visto como crear una matriz con Java. En este caso vamos a realizar la suma de dos matrices.
Para llevar a cabo el ejemplo hemos definido un método Java que nos permite sumar las matrices. La signatura de dicho método será la siguiente:
Como podemos ver el método Java recibe dos matrices y devuelve una, que será el resultado de la misma. Por otro lado puede generar una Exception. Este caso será cuando las dimensiones de las matrices sean diferentes. Ya que cuando las dimensiones de las matrices son diferentes, estas no se pueden sumar.
Así la comprobación de las dimensiones de las matrices las haremos apoyándonos en la propiedad length:
if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){...}
En el caso de no coincidir los tamaños, es cuando elevamos la Exception.
if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){ ... } else
En caso afirmativo procederemos a sumar los elementos de las matrices. Hay que recordar que la suma de las matrices es la suma de todos sus elementos posición a posición. Por lo tanto la suma es sencilla. Solo tenemos que recorrer todos los elementos y dejar el resultado en la matriz destino.
Así, lo primero es crear una matriz resultado de las mismas dimensiones:
int[][] suma = new int[m1.length][m1[0].length];
Para recorrer los elementos nos apoyamos en un bucle for y, nuevamente, en la propiedad length.
for (int x=0; x < m1.length; x++) { for (int y=0; y < m1[x].length; y++) { suma[x][y]=m1[x][y]+m2[x][y]; } }
Ahora solo nos quedará devolver la matriz con el resultado de la suma.
return suma;
Invocar el método es sencillo. Solo hay que tener en cuenta que puede soltar una Exception y por lo tanto lo deberemos de invocar desde un método try-catch
|- Descargar el código
int [][] matriz1 = {{2,4,4},{6,6,9}}; int [][] matriz2 = {{2,4,4},{6,6,9}}; int [][] matriz = new int[3][3]; try { matriz = sumarmatrices(matriz1,matriz2); pintarmatriz(matriz); }
|- Reportar error en el código
|- Foro sobre Java
Crear una matriz en Java Julio 9, 2010
Publicado por lineadecodigo en : Java , 4 comentariosUna matriz matemática es una tabla bidimensional de números. Las matrices pueden sumarse, multiplicarse,... Y suelen ser utilizadas para describir sistemas de ecuaciones lineales. Leer más sobre matrices en Wikipedia.
Si queremos representar una matriz en Java hay que crear un array bidimensional. Por ejemplo para declarar una matriz de 3x3 haríamos lo siguiente:
int matriz[][] = new int[3][3];
Ahora procedemos a cargar la matriz con valores:
matriz[0][0] = 2; matriz[0][1] = 4; matriz[0][2] = 4; matriz[1][0] = 6; matriz[1][1] = 6; matriz[1][2] = 9; matriz[2][0] = 8; matriz[2][1] = 10; matriz[2][2] = 12;
Hay que recordar que los elementos empiezan a numerarse por 0. Así la esquina superior izquierda de la matriz será el elemento [0][0] y la esquina inferior derecha será el [2][2].
Podemos crear e instanciar la matriz en una única línea:
int [][] matriz = {{2,4,4},{6,6,9},{8,10,12}};
De igual manera, si nos apoyamos en el método .lenght del array podremos listar el contenido de la matriz
|- Descargar el código
for (int x=0; x < matriz.length; x++) { for (int y=0; y < matriz[x].length; y++) { } }
|- Reportar error en el código
|- Foro sobre Java



