¿Cómo puedo abrir un archivo .txt y leer los números separados por entradas o espacios en una lista de matriz?Cómo abrir un archivo txt y leer números en Java
Respuesta
de archivos de lectura, analizar cada línea en un entero y almacenar en una lista:
List<Integer> list = new ArrayList<Integer>();
File file = new File("file.txt");
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String text = null;
while ((text = reader.readLine()) != null) {
list.add(Integer.parseInt(text));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
}
}
//print out the list
System.out.println(list);
try{
BufferedReader br = new BufferedReader(new FileReader("textfile.txt"));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
System.out.println (strLine);
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}finally{
in.close();
}
Esto permitirá la lectura línea por línea,
Si tu no. son saperated por newline char. a continuación, en lugar de
System.out.println (strLine);
Puede tener
try{
int i = Integer.parseInt(strLine);
}catch(NumberFormatException npe){
//do something
}
Si está separada por espacios continuación
try{
String noInStringArr[] = strLine.split(" ");
//then you can parse it to Int as above
}catch(NumberFormatException npe){
//do something
}
que debe cerrar el flujo de entrada en un bloque 'finally'. – dogbane
No use DataInputStream para leer texto. Lamentablemente, ejemplos como este se copian una y otra vez, así que puedes eliminarlo de tu ejemplo. http://vanillajava.blogspot.co.uk/2012/08/java-memes-which-refuse-to-die.html –
actualizado, buen artículo por cierto –
A mucho s alternativa Horter es a continuación:
Path filePath = Paths.get("file.txt");
Scanner scanner = new Scanner(filePath);
List<Integer> integers = new ArrayList<>();
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
integers.add(scanner.nextInt());
} else {
scanner.next();
}
}
Un escáner rompe su entrada en tokens utilizando un patrón delimitador, que por defecto coincide con espacios en blanco. Aunque el delimitador predeterminado es un espacio en blanco, encontró con éxito todos los enteros separados por un nuevo carácter de línea.
Buenas noticias en Java 8 podemos hacerlo en una sola línea:
List<Integer> ints = Files.lines(Paths.get(fileName))
.map(Integer::parseInt)
.collect(Collectors.toList());
File file = new File("file.txt");
Scanner scanner = new Scanner(file);
List<Integer> integers = new ArrayList<>();
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
integers.add(scanner.nextInt());
}
else {
scanner.next();
}
}
System.out.println(integers);
¡Me gusta tu respuesta! La forma en que imprime enteros solamente y omite espacios, líneas nuevas y otros caracteres no enteros – Hazmat
- 1. Abrir y leer el archivo txt en ASP
- 2. Cómo leer en un archivo txt
- 3. Abrir y leer un archivo con askopenfilename
- 4. ¿Puedo leer un archivo .TXT con PHP?
- 5. Java: abrir y leer un archivo sin bloquearlo
- 6. Leer carrozas de un archivo .txt
- 7. Modificar un archivo .txt en Java
- 8. ¿Cómo leer un archivo txt grande (1 GB) en .NET?
- 9. java: cómo leer un archivo txt en una matriz de cadenas
- 10. Cómo leer un archivo TXT en el Directorio de la página del servidor Java
- 11. Maven exec: java: ¿cómo abrir y leer un archivo en el directorio de recursos?
- 12. ¿Cómo leo y edito un archivo .txt en C#?
- 13. Java: leer un archivo en una matriz
- 14. Cómo arrastrar y soltar un archivo '.txt' en obj-c
- 15. leer el archivo txt a través del cliente javascript
- 16. ¿Cómo abrir un archivo para leer en C?
- 17. JAVA: leer y escribir un archivo juntos
- 18. Procedimiento almacenado para abrir y leer un archivo de texto
- 19. ¿Cómo leer un archivo y escribir en un archivo de texto?
- 20. Abrir archivo para leer y escribir (no anexar) en perl
- 21. Leer el archivo txt con multi-threaded en python
- 22. Adjuntar un archivo txt en
- 23. cómo sobrescribir datos en un archivo txt?
- 24. ¿Hay alguna forma de leer un archivo .txt y almacenar cada línea en la memoria?
- 25. Leer una línea en particular en el archivo txt en Java
- 26. Cómo crear y escribir en un archivo txt usando VBA
- 27. Cómo leer los números desde un archivo ASCII (C++)
- 28. ¿Cómo leer un archivo XML con Java?
- 29. lectura y la visualización de datos de un archivo .txt
- 30. Cómo convertir el archivo * .txt en Unicode
Esto es bueno, pero yo usaría 'Integer.valueOf (String) 'en su lugar, ya que desea un objeto (entero) de todos modos. –
¿Por qué no podemos mover ** reader.close(); ** a la línea justo después del ciclo while y evitar todo el bloque ** finally ** y el otro ** try-catch ** bloquear el ** finalmente ** contiene? –
@ m-d Consulte el [Tutorial de Java] (http://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html). Debería cerrar los recursos en un 'finally' para asegurarse de que estén siempre cerrados incluso si se produce una excepción dentro del bloque' try'. Esto evita fugas de recursos. – dogbane