我已阅读以前的帖子并尝试将代码集成到我的项目中。 我试图从我的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 ...) 我认为问题与扫描仪有关,也许他认为它不是整数。
答案 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)
如果您正在以二进制形式阅读数据,请考虑使用基数nextInt
或hasNextInt
。
while (scanner.hasNextInt(2)) {
tall.add(scanner.nextInt(2));
}
否则你将读取整数为小数,因此值可能超出整数范围,如
11111111111111111111111111111111