Java从文本文件中读取值
我是Java新手。 我有一个文本文件,内容如下。
`trace` - 结构体( 列表( “a”=结构(c(0.748701,0.243802,0.227221,0.752231,0.261118,0.263976,1.19737,0.22047,0.222584,0.835411)), “b”=结构(c(1.4019,0.486955,-0.127144,0.642778,0.379787,-0.105249,1.0063,0.613083,-0.165703,0.695775)) ) )
现在我想要的是,我需要将“a”和“b”作为两个不同的数组列表。
您需要逐行读取文件。 它是用这样的BufferedReader
完成的:
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()); }
假设你的"a"
和"b"
位于文件的第四行和第五行,你需要调用一个方法,当满足这些行时将返回一个double
数组:
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; }
希望这可以帮助。 我仍然强烈建议您阅读Java I / O和String教程。
你可以玩拆分。 首先在文本中找到与“a”(或“b”)匹配的行。 然后做这样的事情:
Array[] first= line.split("("); //first[2] will contain the values
然后:
Array[] arrayList = first[2].split(",");
你将获得arrayList []中的数字。 小心最后的括号)),因为它们后面有一个“,”。 但那是代码净化,这是你的使命。 我给了你这个主意。
- java没有这样的文件或目录
- 执行线程的顺序
- java.lang.NoClassDefFoundError:如何修复此错误?
- 如何在java中编写firebase云函数
- 线程“main”中的exceptionjava.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO $ Windows.access0(Ljava / lang / String; I)Z
- 我如何在while循环中使用java扫描程序
- Handler.handleMessage未在测试中调用,但在应用程序中调用
- 使用java在网页中进行字符编码
- ViewPager + GridView onItemClick