如何使用缓冲 Reader 读取 java 文件中的整数?

How to read integers on file with java using Buffered Reader?

这是我正在尝试读取的文件:

P 1.0 0.0 0.0
80 10
80 30
230 37
280 30
280 10
T
t 100 -75
r 30 0 0
s 0.5 1.5 0 0

这是我的部分代码:

File file = new File("coordinatess.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
glPushMatrix();
while ((st = br.readLine()) != null){
                        String str[] = st.split(" ");
                        if(str[0].equalsIgnoreCase("P")){
                            glColor3f(Float.parseFloat(str[1]), Float.parseFloat(str[2]), Float.parseFloat(str[3]));

                        }
                        else if(str[0].equalsIgnoreCase("T")){
                            br.readLine();
                        }
                        else if(str[0].equalsIgnoreCase("r")){
                            glRotatef(Float.parseFloat(str[1]), Float.parseFloat(str[2]), Float.parseFloat(str[3]), 0);
                        }
                        else if(str[0].equalsIgnoreCase("s")){
                            glScalef(Float.parseFloat(str[1]), Float.parseFloat(str[2]), Float.parseFloat(str[3]));
                        }
                        else if(str[0].equalsIgnoreCase("t")){
                            glTranslatef(Float.parseFloat(str[1]), Float.parseFloat(str[2]), 0);
                        }

                    }

我在阅读没有任何字母的行时有点困难。它只是整数。在 "P"?

之后,我将如何具体阅读这些行

使用嵌套级别解析值 Integer.parseInt(value) 并进行异常处理

String str = "T 10 5.7";
String[] strings = str.split(" ");
for (String string : strings) {
    try {
        System.out.println(Integer.parseInt(string));
    } catch (Exception e) {
        try {
            System.out.println(Float.parseFloat(string));
        } catch (Exception e2) {
            System.out.println(string);
        }
    }
}

尝试Santaji 的方法,在try-catch 块中包含finally 以及在try-catch 块外。您最终的 try-catch 块应该如下所示。必须关闭任何输入流。

String str = "T 10 5.7";
        String[] strings = str.split(" ");
        for (String string : strings) {
            try {
                System.out.println(Integer.parseInt(string));
            } catch (Exception e) {
                try {
                    System.out.println(Float.parseFloat(string));
                } catch (Exception e2) {
                    System.out.println(string);
                }
            } finally {
                  try {
                    if (file !=null) {
                          file.close();
                 }
            }
           }
        }

但是,要将整数转换为字符串,您可以使用其他方法,例如:
String.valueOf(number)(最喜欢)
或者
Integer.toString(number)