从java中的txt文件中读取数字(而不是int)

从java中的txt文件中读取数字(而不是int),java,Java,我有一个这样的文件 test.txt: 122352352246 1241351431634134 现在我想每次读取每个数字,并将其作为一个元素存储在列表中。 我试着用扫描仪。但它每次读取一行,并输出一个长整数。这意味着如果我想得到数字,我需要进一步分离整数中的数字。我想一定有一种优雅的方式可以每次直接读取一个数字。下面是我的代码 public class readDigits { public static void main(String[] args) throws IOExceptio

我有一个这样的文件

test.txt:

122352352246

1241351431634134

现在我想每次读取每个数字,并将其作为一个元素存储在列表中。 我试着用扫描仪。但它每次读取一行,并输出一个长整数。这意味着如果我想得到数字,我需要进一步分离整数中的数字。我想一定有一种优雅的方式可以每次直接读取一个数字。下面是我的代码

public class readDigits {

public static void main(String[] args) throws IOException{
    List<Integer> list = new ArrayList<Integer>();
    File file = new File("test.txt");
    Scanner in = new Scanner(file);
    int c;
    try {
         while (in.hasNext()){
             c = in.nextInt();
             list.add(c);

        }

    }
    finally {
        System.out.println(list);
        in.close();
    }

}


}
我想一定有一种优雅的方式可以每次直接读取一个数字

数字是一个字符-因此您希望一次读取一个字符

奇怪的是,扫描器似乎不利于这一点。您可以从扫描仪一次读取一个字节,但最好使用读卡器:

或者,您可以读取文件的所有行,并分别处理每一行,这也非常简单。

尝试以下方法:

byte[] buffer = new byte[2];
try (InputStream str = new FileInputStream("test.txt")) {
    while (str.read(buffer) != -1) {
        System.out.print(new String(buffer));
    }
}

可能的dup:这看起来可能对你有帮助@zhang_rick您可以使用charAt方法一次读取一个字母/数字
byte[] buffer = new byte[2];
try (InputStream str = new FileInputStream("test.txt")) {
    while (str.read(buffer) != -1) {
        System.out.print(new String(buffer));
    }
}