leer de un archivo txt y guardarlo en un array
Hola!, necesito leer un archivo *.txt que tiene el siguiente formato:
4.556
8.667
99.000
5.678
346.9008
Y necesito guardalor en un array, se que leerlos por pantalla me resulta bien:
// para llenar el vector de la varaible Xk
BufferedReader inData = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Ingrese numero de elementos de Xk= ");
int s = Integer.parseInt(inData.readLine());
arrayX = new float[s];
for (int index = 0; index < arrayX.length; index++) {
System.out.println("Ingresar valor Xk[" + index + "] = ");
arrayX[index] = Integer.parseInt(inData.readLine());
}
for (int index = 0; index < arrayX.length; index++) {
System.out.println("Xk[" + index + "] = " + arrayX[index]);
}
pero si no quiero ingresarlo por teclado y leerlos del archivo..¿que hago?
Gracias!
4.556
8.667
99.000
5.678
346.9008
Y necesito guardalor en un array, se que leerlos por pantalla me resulta bien:
// para llenar el vector de la varaible Xk
BufferedReader inData = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Ingrese numero de elementos de Xk= ");
int s = Integer.parseInt(inData.readLine());
arrayX = new float[s];
for (int index = 0; index < arrayX.length; index++) {
System.out.println("Ingresar valor Xk[" + index + "] = ");
arrayX[index] = Integer.parseInt(inData.readLine());
}
for (int index = 0; index < arrayX.length; index++) {
System.out.println("Xk[" + index + "] = " + arrayX[index]);
}
pero si no quiero ingresarlo por teclado y leerlos del archivo..¿que hago?
Gracias!
import java.io.*;
import java.util.*;
public static double[] leeArchivo(String nombreArchivo) throws FileNotFoundException
{
Scanner lector=new Scanner(new File(nombreArchivo));
LinkedList<Double> lista=new LinkedList<Double>();
while(lector.hasNextDouble())
lista.add(lector.nextDouble());
double [] array=new double[lista.size()];
return lista.toArray(array);
}
import java.util.*;
public static double[] leeArchivo(String nombreArchivo) throws FileNotFoundException
{
Scanner lector=new Scanner(new File(nombreArchivo));
LinkedList<Double> lista=new LinkedList<Double>();
while(lector.hasNextDouble())
lista.add(lector.nextDouble());
double [] array=new double[lista.size()];
return lista.toArray(array);
}
Perdón, el código anterior no funciona, porque el jdk1.5 transforma automáticamente un Double en un double, pero no un array de un tipo en un array del otro tipo, que es mucho más costoso. El código correcto es:
public static double[] leeArchivo(String nombreArchivo) throws FileNotFoundException
{
Scanner lector=new Scanner(new File(nombreArchivo));
LinkedList<Double> lista=new LinkedList<Double>();
while(lector.hasNextDouble())
lista.add(lector.nextDouble());
double [] array=new double[lista.size()];
Iterator<Double> iter=lista.iterator();
for(int i=0;i<array.length;i++)
array[i]=iter.next();
return array;
}
public static double[] leeArchivo(String nombreArchivo) throws FileNotFoundException
{
Scanner lector=new Scanner(new File(nombreArchivo));
LinkedList<Double> lista=new LinkedList<Double>();
while(lector.hasNextDouble())
lista.add(lector.nextDouble());
double [] array=new double[lista.size()];
Iterator<Double> iter=lista.iterator();
for(int i=0;i<array.length;i++)
array[i]=iter.next();
return array;
}