我有一个像这样的文件
的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();
}
}
}
答案 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));
}
}