我正在使用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());
}
答案 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
}
}