Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取文件,将字符串转换为双精度,存储在二维数组中_Java_String_Multidimensional Array_Double - Fatal编程技术网

Java 读取文件,将字符串转换为双精度,存储在二维数组中

Java 读取文件,将字符串转换为双精度,存储在二维数组中,java,string,multidimensional-array,double,Java,String,Multidimensional Array,Double,我需要读取文件中的数字列表并将其存储到2d数组中。 这就是我目前所拥有的。我将如何实现这一目标 //this is only part of my code public class RainFall { double[][] precip; public RainFall() { precip = new double [5][12]; } public void readFile(BufferedReader infile) th

我需要读取文件中的数字列表并将其存储到2d数组中。 这就是我目前所拥有的。我将如何实现这一目标

//this is only part of my code
public class RainFall
{

    double[][] precip;

    public RainFall()
    {
        precip = new double [5][12];
    }

    public void readFile(BufferedReader infile) throws IOException
    {
        FileInputStream infile = new FileInputStream("numbers.dat");
        BufferedReader br = new BufferedReader(new InputStreamReader(infile));

        String[][] myarray = new String[5][12];
        while (infile.readLine() != null) 
        {   
            for (int j = 0; j < 5; j++)
            {
                for (int i = 0; i < 12; i++)
                {
                    myarray[j][i] = infile.readLine();
                }

            }


        }
        infile.close();
    }
//这只是我代码的一部分
公共级降雨
{
双[]精度;
公众雨量()
{
precip=新双[5][12];
}
public void readFile(BufferedReader infle)引发IOException
{
FileInputStream infle=新的FileInputStream(“numbers.dat”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(infle));
字符串[][]myarray=新字符串[5][12];
while(infle.readLine()!=null)
{   
对于(int j=0;j<5;j++)
{
对于(int i=0;i<12;i++)
{
myarray[j][i]=infle.readLine();
}
}
}
infle.close();
}
numbers.dat是60行:

1.01
0.03
2.14
0.47

//每一个数字都在一个新行上吗?非常接近,我在下面添加了几行。
公共级降雨
{
双[]精度;
公众雨量()
{
precip=新双[5][12];
}
public void readFile(BufferedReader infle)引发IOException
{
//FileInputStream infle=新的FileInputStream(“numbers.dat”);
BufferedReader br=新的BufferedReader(新文件读取器(“numbers.dat”);
字符串行=”;
字符串[][]myarray=新字符串[5][12];
而((line=br.readLine())!=null)
{   
double num=double.parseDouble(line.trim());
对于(int j=0;j<5;j++)
{
对于(int i=0;i<12;i++)
{
precip[j][i]=num;
}
}
}
br.close();
}
//每一个数字都在一行上吗?你很接近了,我在下面加了几行。
公共级降雨
{
双[]精度;
公众雨量()
{
precip=新双[5][12];
}
public void readFile(BufferedReader infle)引发IOException
{
//FileInputStream infle=新的FileInputStream(“numbers.dat”);
BufferedReader br=新的BufferedReader(新文件读取器(“numbers.dat”);
字符串行=”;
字符串[][]myarray=新字符串[5][12];
而((line=br.readLine())!=null)
{   
double num=double.parseDouble(line.trim());
对于(int j=0;j<5;j++)
{
对于(int i=0;i<12;i++)
{
precip[j][i]=num;
}
}
}
br.close();
}
而不是

String[][] myarray = new String[5][12];
使用

然后将其细分到循环中:

myarray[j][i] = Double.parseDouble(infile.readLine());
而不是

String[][] myarray = new String[5][12];
使用

然后将其细分到循环中:

myarray[j][i] = Double.parseDouble(infile.readLine());

发布一个你的文件看起来如何的示例每行上的数字是如何分开的?你能给出一些示例数据吗?每行上的数字数量是否相同?发布一个你的文件看起来如何的示例每行上的数字是如何分开的?你能给出一些示例数据吗?每行上的数字数量是否相同?我也删除了d您只需要使用FileInputStream、BufferedReader即可。这还可以填充二维双数组precip。如果要填充二维字符串数组myarray,则不需要double.parseDouble()调用。我还删除了您对FileInputStream的使用,BufferedReader是您所需要的。这还将填充2d双数组precip。如果您要填充2d字符串数组myarray,则不需要double.parseDouble()调用。