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