прочитать файл, преобразовать строку в двойную, сохранить в 2d массиве - PullRequest
1 голос
/ 09 февраля 2011

Мне нужно прочитать список чисел в файле и сохранить его в 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();
    }

numbers.dat - это 60 строк:

1,01
0,03
2,14
0,47

Ответы [ 2 ]

1 голос
/ 09 февраля 2011
//Is each number on a new line? You're very close, I added a few lines below. 

    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 FileReader("numbers.dat"));
        String line = "";
        String[][] myarray = new String[5][12];

        while ((line = br.readLine()) != null) 
        {   
            double num = Double.parseDouble(line.trim());
            for (int j = 0; j < 5; j++)
            {
                for (int i = 0; i < 12; i++)
                {
                    precip[j][i] = num;
                }

            }


        }
        br.close();
    }
0 голосов
/ 09 февраля 2011

Вместо

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

используйте

double[][] myarray = new double[5][12];

Затем вставьте это в цикл:

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