Java reads values ​​from a text file

I am new to Java. I have one text file with the content below.

  `trace` -
 structure (
  list (
   "a" = structure (c (0.748701,0.243802,0.227221,0.752231,0.261118,0.263976,1.19737,0.22047,0.222584,0.835411)),
   "b" = structure (c (1.4019,0.486955, -0.127144,0.642778,0.379787, -0.105249,1.0063,0.613083, -0.165703,0.695775))
  )
 )
  

Now what I want, I need to get "a" and "b" as two different lists of arrays.

+6
source share
2 answers

You need to read the file line by line. This is done using BufferedReader as follows:

 try { FileInputStream fstream = new FileInputStream("input.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); String strLine; int lineNumber = 0; double [] a = null; double [] b = null; // Read File Line By Line while ((strLine = br.readLine()) != null) { lineNumber++; if( lineNumber == 4 ){ a = getDoubleArray(strLine); }else if( lineNumber == 5 ){ b = getDoubleArray(strLine); } } // Close the input stream in.close(); //print the contents of a for(int i = 0; i < a.length; i++){ System.out.println("a["+i+"] = "+a[i]); } } catch (Exception e) {// Catch exception if any System.err.println("Error: " + e.getMessage()); } 

Assuming that your "a" and "b" are on the fourth and fifth lines of the file, you need to call the method when these lines are executed, which will return a double array:

 private static double[] getDoubleArray(String strLine) { double[] a; String[] split = strLine.split("[,)]"); //split the line at the ',' and ')' characters a = new double[split.length-1]; for(int i = 0; i < a.length; i++){ a[i] = Double.parseDouble(split[i+1]); //get the double value of the String } return a; } 

Hope this helps. I would still highly recommend reading the Java I / O and String tutorials.

+7
source

You can play with the section. First find the line in the text that matches "a" (or "b"). Then do something like this:

 Array[] first= line.split("("); //first[2] will contain the values 

Then:

 Array[] arrayList = first[2].split(","); 

You will have numbers in arrayList []. Be careful with trailing parentheses)), because they have a "," immediately after. But this is code coding, and this is your mission. I gave you this idea.

+2
source

Source: https://habr.com/ru/post/887800/


All Articles