Bueno la idea es la siguiente:
Tengo un archivo .txt con el formato:
12345678
87654321
.
.
.
.
en donde cada numero tengo que pasarlo a una posición de un arreglo ej:
arreglo[0]=1
arreglo[1]=2
.......
espero entiendan tengo un código pero me lee los saltos de linea y me llena posiciones con espacios
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileReader entrada=null;
StringBuilder str=new StringBuilder();
char[] datos = new char[24];
int n=0;
try{
BufferedReader fileIn = new BufferedReader(
new FileReader ("u.txt"));
int read = fileIn.read();
while (read != -1){
datos[n]=(char) read;
n++;
read = fileIn.read();
}
}
catch (FileNotFoundException ex)
{
}
catch (IOException ex)
{
}
}
}
Pues podrías realizar dos bucles, es decir:
while (read != -1){
while((char)read!='\n'){
datos[n]=(char) read;
n++;
read = fileIn.read();
}
read = fileIn.read();
}
Espero que te sirva. Saludos.
muchas gracias =D
Y así?
while (read != -1){
char actual=(char) read;
if(actual!='\n' && actual!='\r') {
datos[n]=actual;
n++;
}
read = fileIn.read();
}
De esta forma te ahorras el anidar dos bucles... ;D
Apenas existe diferencia, va a ejecutar las mismas veces las instrucciones del IF que al hacer dos bucles while. Lo único, te ahorras una instrucción respecto (leer el siguiente caracter) a lo que propuse.
Saludos.
muchas gracias me sirvió justo como quería =D
try {
int a=0;
br = new BufferedReader(new FileReader("DATOS.txt"));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
if (line != null) {
line = br.readLine();
}
for (int i = 0; i < sb.length(); i++) {
datos[a] = sb.charAt(a);
a++;
}
} catch (IOException ex) {
Logger.getLogger(Interfaz.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(Interfaz.class.getName()).log(Level.SEVERE, null, ex);
}
}
Simplemente por costumbre siempre intento anidar el menor número de bucles posible... (creo que de pequeño cogí un trauma o algo jeje)
Supongo que en este caso es prácticamente lo mismo ;D
Saludos!