Read float numbers from file

前端 未结 2 387
醉梦人生
醉梦人生 2021-01-26 06:36

How to read float numbers from file?

  0.00000E+00  2.12863E-01
  1.00000E-02  2.16248E-01
  2.00000E-02  2.19634E-01

in the file 2 spaces befo

相关标签:
2条回答
  • 2021-01-26 07:08

    So, I understand my mistake. I need to use

    s.useLocale(Locale.US);
    

    because that Scanner interpets "." as decimal separator, in my locale (default) it is ",". Also note that both 1.1 and 3 (integer) are recognized by nextDouble

    //according to this link

    0 讨论(0)
  • 2021-01-26 07:10
    1. Read file line by line.
    2. Split each line into words based on spaces.
    3. Convert each word into float.

    Here is the code:

        BufferedReader reader = null;
    
        try {
            // use buffered reader to read line by line
            reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(
                    "<FULL_FILE_PATH>"))));
    
            float x, y;
            String line = null;
            String[] numbers = null;
            // read line by line till end of file
            while ((line = reader.readLine()) != null) {
                // split each line based on regular expression having
                // "any digit followed by one or more spaces".
    
                numbers = line.split("\\d\\s+");
    
                x = Float.valueOf(numbers[0].trim());
                y = Float.valueOf(numbers[1].trim());
    
                System.out.println("x:" + x + " y:" + y);
            }
        } catch (IOException e) {
            System.err.println("Exception:" + e.toString());
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    System.err.println("Exception:" + e.toString());
                }
            }
        }
    
    0 讨论(0)
提交回复
热议问题