java - 尝试从文本文件中读取

标签 java list file text-files java.util.scanner

我正在尝试从文本文件中读取以下内容:

12
650 64 1
16 1024 2

我的尝试:

import java.util.Scanner;
import java.io.*;

class Test{

    public static void main(String[] args){
        String filnavn = "regneklynge.txt";
        Scanner innFil = null;
        try {
            File fil = new File(filnavn);
            innFil = new Scanner(fil);
            while (innFil.hasNextLine()) {
                String linje = innFil.nextLine(); 
                int tall = Integer.parseInt(linje);
                System.out.println(tall);
            }
        } catch(FileNotFoundException e) {
            System.out.println("Filen kunne ikke finnes");
        }
    }
}

第一个数字(12)工作正常,但后来我得到了这个

Exception in thread "main" java.lang.NumberFormatException: For input string: "650 64 1"

最佳答案

建议:

  • 您需要两个 while 循环,一个嵌套在另一个循环内
  • 第一个,外循环,你循环while (innFile.hasNextLine()) {...}
  • 在这个循环中你调用 String linje = innFile.nextLine();一次
  • 然后创建第二个扫描仪对象,Scanner lineScanner = new Scanner(linje);
  • 并创建第二个内部 while 循环 while (lineScanner.hasNextInt() {...}
  • 在此循环内部,通过 int tall = lineScanner.nextInt(); 提取单个 int
  • 并将其放入您的 ArrayList 中。
  • 请务必调用 lineScanner.close();退出内层 while 循环之后、退出外层循环之前。

关于java - 尝试从文本文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501393/

相关文章:

java - 使用 JPA 在 Spring Boot 中实现 DAO

java - EntityManager 和 DAO 有什么区别?

Java递归如何计算每个数字的和

list - Lisp 列表操作问题

php - 选择是否将文件保存在数据库中作为 blob ajax php

java - 在Java中将int转换为double期间精度会略有变化吗?

c - 在 C 中搜索链表

Python:如何在遍历列表时只保留所有先前子列表中的元素?

linux - Linux文件系统中3个时间状态有什么区别

具有多部分形式的 Angular 6 后请求不包含已发布对象的附加文件