0

我之前问过一个关于在 java 中将 CSV 文件转换为二维数组的问题。我完全重写了我的代码,它几乎是在重写。我现在唯一的问题是它正在向后打印。换句话说,列正在打印行应该在的位置,反之亦然。这是我的代码:

 int [][] board = new int [25][25];

     String line = null;
     BufferedReader stream = null;
     ArrayList <String> csvData = new ArrayList <String>();

     stream = new BufferedReader(new FileReader(fileName));
        while ((line = stream.readLine()) != null) {
            String[] splitted = line.split(",");
            ArrayList<String> dataLine = new ArrayList<String>(splitted.length);
            for (String data : splitted)
                dataLine.add(data);
            csvData.addAll(dataLine);

        }

        int [] number = new int [csvData.size()];

        for(int z = 0; z < csvData.size(); z++)
        {
            number[z] = Integer.parseInt(csvData.get(z));
        }

        for(int q = 0; q < number.length; q++)
        {
            System.out.println(number[q]);
        }

        for(int i = 0; i< number.length; i++)
        {
            System.out.println(number[i]);
        }



        for(int i=0; i<25;i++)
            {
               for(int j=0;j<25;j++)
               {
                   board[i][j] = number[(j*25) + i]; 

            }
            }

基本上,二维数组应该有 25 行和 25 列。在读取 CSV 文件时,我将其保存到 String ArrayList 中,然后将其转换为一维 int 数组。任何输入将不胜感激。谢谢

4

1 回答 1

1

所以你想在 java 中读取一个 CSV 文件,那么你可能想使用 OPEN CSV

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import au.com.bytecode.opencsv.CSVReader;

public class CsvFileReader {
    public static void main(String[] args) {

        try {
            System.out.println("\n**** readLineByLineExample ****");
            String csvFilename = "C:/Users/hussain.a/Desktop/sample.csv";
            CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
            String[] col = null;
            while ((col = csvReader.readNext()) != null) 
            {
                System.out.println(col[0] );
                //System.out.println(col[0]);
            }
            csvReader.close();
        }
        catch(ArrayIndexOutOfBoundsException ae)
        {
            System.out.println(ae+" : error here");
        }catch (FileNotFoundException e) 
        {
            System.out.println("asd");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("");
            e.printStackTrace();
        }
    }
}

你可以从这里获取相关的jar文件

于 2013-02-28T05:51:40.250 回答