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

时间:2014-12-10 17:06:34

标签: java

我有一个像这样的文件

的test.txt:

122352352246

12413514316134

现在我想一次读取每个数字,并将其作为一个元素存储在一个列表中。 我尝试过使用Scanner。但它每次都会读取一行,并输出一个长整数。这意味着如果我想获取数字,我需要进一步分离该整数中的数字。我想必须有一种优雅的方式来每次直接读取一位数。以下是我的代码

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();
    }

}


}

2 个答案:

答案 0 :(得分:0)

  

我想必须有一种优雅的方式来每次直接读取一位数。

数字是一个字符 - 所以你想一次读一个字符。

奇怪的是,Scanner似乎不利于此。您可以<{1}}一次读取一个字节,但最好使用Scanner代替:

Reader

或者,你可以阅读文件的所有,并单独处理每一行 - 这也很简单。

答案 1 :(得分:0)

试试这个:

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