如何在Java中正确读取文件中的整数

时间:2014-04-20 12:02:27

标签: java file java.util.scanner

我已阅读以前的帖子并尝试将代码集成到我的项目中。 我试图从我的txt文件中读取整数。 我正在使用这种方法:

 static Object[] readFile(String fileName) throws FileNotFoundException {
    Scanner scanner = new Scanner(new File(fileName));
    List<Integer> tall = new ArrayList<Integer>();
    while (scanner.hasNextInt()) {
        tall.add(scanner.nextInt());
    }

    return tall.toArray();
}

我不知道数据的大小,所以我使用的是List 在主调用方法中:

Object [] arr = readFile("C:\\02.txt");
System.out.println(arr.length);

我得到的数组大小为0; 我试图从文件中读取的整数是二进制序列。 (1010101010 ...) 我认为问题与扫描仪有关,也许他认为它不是整数。

2 个答案:

答案 0 :(得分:1)

您可以改为使用BufferReader

String line = "";
List<Integer> tall = new ArrayList<Integer>();
try {
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    while ((line = br.readLine())!= null) {
        tall.add(Integer.parseInt(line, 2));
    }
    br.close();
}catch(IOException e) {}

答案 1 :(得分:0)

如果您正在以二进制形式阅读数据,请考虑使用基数nextInthasNextInt

while (scanner.hasNextInt(2)) {
    tall.add(scanner.nextInt(2));
}

否则你将读取整数为小数,因此值可能超出整数范围,如

11111111111111111111111111111111