我有一个文件,我希望将每个整数读入单独的变量,直到遇到与此类似的文件的新行。
1 3 5
2 3 3
4 3 3
在C中,我可以使用:
fscanf(file_desc, "%d, %d, %d \n", &varA, &varB, &varC); //just wrote that here..syntax could be wrong
有没有办法用Java做到这一点?因此,请将每个数字读入一个单独的变量。
答案 0 :(得分:2)
我认为我们在Java中没有像那样的语法糖。
您可以使用Scanner,阅读nextLine()
行,将其与split(" ")
分开,然后使用Integer.parseInt()
解析为整数。
public static void main(String[] args) throws FileNotFoundException {
Scanner s = new Scanner(new File("numbers.txt"));
List<Integer> numbersList = new ArrayList<Integer>();
while (s.hasNextLine()) {
String[] numbers = s.nextLine().split(" ");
for (String n : numbers)
try {
numbersList.add(Integer.parseInt(n));
} catch (NumberFormatException nfe) {
System.err.println("Not an integer: " + n);
}
}
System.out.println(numbersList);
}
答案 1 :(得分:0)
Scanner scanner = new Scanner(new FileInputStream(new File("your file")));
while(scanner.hasNext()){
String s = scanner.nextLine();
String[] ints = s.split(" ");
a = Integer.parseInt(ints[0]);
b = Integer.parseInt(ints[1]);
c = Integer.parseInt(ints[2]);
}