开发者

how to print text file in 2d array in java? [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

How to print 2D Array from .txt file in Java

8.00 28.00

18.00 28.00 8.00 23.00

12.00 20.00 15.00 30.00 12.00 32.00 12.00 20.00 18.00 31.00 29.00 25.00 6.00 28.00

7.00 28.00

6.00 24.00 14.00 30.00 11.00 23.00 12.00 20.00 31.00 24.00 11.00 20.00 17.00 23.00 14.00 32.00 15.00 23.00 8.00 20.00

17.00 31.00 7.00 20.00 12.00 23开发者_如何学Python.00 15.00 20.00 12.00 20.00 21.00 20.00 27.00 27.00 18.00 20.00 25.00 27.00 46.00 13.00 26.00 10.00 47.00 22.00 44.00 14.00 34.00 4.00 34.00 4.00

44.00 7.00

39.00 5.00

20.00 0.00

43.00 11.00 43.00 25.00 34.00 2.00

25.00 10.00 50.00 9.00

25.00 9.00

39.00 2.00

34.00 7.00

44.00 15.00 36.00 3.00

40.00 5.00

49.00 21.00 42.00 7.00

35.00 1.00

30.00 2.00

31.00 13.00 53.00 12.00 40.00 4.00

26.00 4.00

50.00 55.00 57.00 51.00 62.00 52.00 56.00 52.00 59.00 40.00 61.00 68.00 66.00 49.00 57.00 49.00 62.00 58.00 47.00 58.00 53.00 40.00 60.00 54.00 55.00 48.00 56.00 65.00 67.00 56.00 55.00 43.00 52.00 49.00 67.00 62.00 68.00 61.00 65.00 58.00 46.00 53.00 46.00 49.00 47.00 40.00 64.00 22.00 64.00 54.00 63.00 64.00 63.00 56.00 64.00 44.00 63.00 40.00

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;


public class csvimport5 {


public static void main(String[] args) throws IOException {


    double [][] data = new double [87][2];  
    File file = new File("buydata.txt");
    int row = 87;
    int col = 2;
    BufferedReader bufRdr  = new BufferedReader(new FileReader(file));
    String line ;


    //read each line of text file
    while((line = bufRdr.readLine()) != null && row < data.length)
    {   

    StringTokenizer st = new StringTokenizer(line," ");
    while (st.hasMoreTokens())
    {

        //get next token and store it in the array
        data[col][row] = Double.parseDouble(st.nextToken());
        col++;

    }
    col=0;

    }

    row++;

     for( row = 0; row<data.length; row++){
   for( col = 0; col<data.length; col++){         

    System.out.print(" "+data[86][1]);
   }
   System.out.println();
     }






  }

}

It gives output like 0.0 0.0 0.0 0.0 please help me to print that file in array form


You always print System.out.print(" "+data[86][1]); and you initialize row to 87 before reading.

You also do double [][] data = new double [87][2]; which seems to be [row][col] but then you set values using [col][row]. Fix the order to be consistent please. Don't you get ArrayIndexOutOfBoundsExceptions on that line:
data[col][row] = Double.parseDouble(st.nextToken()); ? (Edit: I just saw your other question, so you indeed get the AIOOBE ;) )

This while loop will never run: while((line = bufRdr.readLine()) != null && row < data.length). You initialize row to 87 which is equal to data.length and thus the statement row < data.length is always false.

Edit: I'm stopping here now. I'd suggest you throw your program at a debugger and see what your code really does.


You should learn how to use a debugger! Here is a good start!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜