java从文本文件中读取整数

时间:2014-11-19 18:35:47

标签: java inputstream

我正在使用eclipse;我需要从文本文件中读取整数,这些文本文件可能有多行以空格分隔:71 57 99 ... 我需要将这些数字设为71和57 ......但是我的代码产生的数字范围是10到57

    int size = 0;
    int[] spect = null;
    try {
        InputStream is = this.getClass().getResourceAsStream("/dataset.txt");
        size = is.available();
        spect = new int[size];
        for (int si = 0; si < size; si++) {
            spect[si] = (int) is.read();//   System.out.print((char)is.read() + "  ");
        }
        is.close();
    } catch (IOException e) {
        System.out.print(e.getMessage());
    }

3 个答案:

答案 0 :(得分:2)

read()读取单byte,然后您转换为int值,您需要使用BufferedReader逐行读取,然后split()和{ {1}}

答案 1 :(得分:1)

您是否考虑过使用扫描仪来执行此操作?扫描仪可以将文件名作为参数,并可以轻松读出每个单独的数字。

InputStream is = this.getClass().getResourceAsStream("/dataset.txt");
int[] spect = new int[is.available()];
Scanner fileScanner = new Scanner("/dataset.txt");

for(int i = 0; fileScanner.hasNextInt(); i++){
    spect[i] = fileScanner.nextInt();
}

答案 2 :(得分:0)

您可以将其转换为BufferedReader并阅读并拆分行。

BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null) {
    String[] strings = line.split(" ");
    for (String str : strings) {
         Integer foo = Integer.parseInt(str);
         //do what you need with the Integer
    }
}