Foros del Web » Programación para mayores de 30 ;) » Java »

No escribe el resultado en el archivo.txt

Estas en el tema de No escribe el resultado en el archivo.txt en el foro de Java en Foros del Web. Hola amigos tengo una aplicacion sencilla que escribe numeros aleatorios en un archivo plano. El problema es que cuando mando a imprimir el resultado por ...
  #1 (permalink)  
Antiguo 25/10/2013, 14:32
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 6 meses
Puntos: 0
No escribe el resultado en el archivo.txt

Hola amigos tengo una aplicacion sencilla que escribe numeros aleatorios en un archivo plano. El problema es que cuando mando a imprimir el resultado por ejemplo de esta manera
Código:
bw.write(arreglo[i]);
sale en el archivo unos cuadros diminutos pero los numeros no. Y cuando imprimo de esta forma
Código:
bw.write(". "+arreglo[i]+" .");
ahi si me imprime los numeros generados aleatoriamente pero con los puntos. No se por que razon pasa esto si alguien que le ha pasado lo mismo espero su colaboración, sugerencia o solucion. Gracias. Dejo el codigo completo:

Código:
import java.util.Random;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;

public class Main1
{ 
public static void main(String[] args) throws IOException
{
	int[] arreglo;
	int cant,digitos=1,numero = 1;
	int aux,pasadas=0,comparaciones=0;
	
	long tiempoInicio = System.currentTimeMillis();
	FileWriter fw = new FileWriter("C:/Users/Nando Cruz/Desktop/fuente.txt");
	BufferedWriter bw = new BufferedWriter(fw);
	
	numero=Integer.parseInt(JOptionPane.showInputDialog (null,"Digite la cantidad de digitos: "));
	for(int j = 1; j<=numero;j++){
	 digitos = digitos * 10;
	//ira haciendo 1*10 = 10, 10*10=100, 100*10=1000... etc
	}
	digitos = digitos -1; //se 1 para que quede en 999 por ejemplo para el caso de 3 digitos

	cant=Integer.parseInt(JOptionPane.showInputDialog (null,"Digite el numero de posiciones: "));
	arreglo=new int[cant];
	for (int i=0; i<arreglo.length;i++){
	Random ram = new Random();
	arreglo[i] = ram.nextInt(digitos)+1;
	}
	
	for (int i=0; i<arreglo.length;i++)
	{
		pasadas++;
		for (int j=0; j<arreglo.length-1;j++)
		{
			comparaciones++;
			if (arreglo[j]>arreglo[j+1])
			{
				aux=arreglo[j];
				arreglo[j]=arreglo[j+1];
				arreglo[j+1]=aux;
			}
		}
	}
	
	for (int i=0; i<arreglo.length;i++)
	{
		bw.write(arreglo[i]);
		bw.newLine();
	}
	
	bw.newLine();bw.newLine();
	bw.write("pasadas: "+pasadas);
	bw.newLine();
	bw.write("Iteraciones: "+comparaciones);
	bw.newLine();
	long totalTiempo = System.currentTimeMillis() - tiempoInicio;
	bw.write("El tiempo de demora es :" + totalTiempo + " milisegundos");
	bw.close();
	fw.close();
	JOptionPane.showMessageDialog(null,"Archivo plano generado.");

	}
}
PDT: La idea es que el archivo se genere sin caracteres especiales. solo deseo que salgan los numeros. Gracias
  #2 (permalink)  
Antiguo 25/10/2013, 20:22
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: No escribe el resultado en el archivo.txt

Hola,

Esa es la diferencia entre un String y un Integer.

Código:
bw.write(String.valueOf(arreglo[i]));
Saludos,

Etiquetas: resultado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:55.