import java.io.*;

import java.util.*;

 

      public class test {

 

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

               // 파일 객체 생성

              FileReader fr = new FileReader("d:\\" + File.separator + "test.csv");

              // 파일 객체를 스캔하기 위한 객체

              Scanner scan = new Scanner(fr);

              // rowsMax는 배열에 지정된 행수 

              // colsMax는 배열에 지정된 열수 

              // 행의 수를 카운트

              // 열의 수를 카운트 

              int rowsMax = 0, colsMax = 0, rowsCnt = 0, colsCnt = 0;

               

              String buffer = ""; // 파일에서 읽어드린 모든 값을 buffer 에 임시로 저장함.

       

              while(scan.hasNextLine()){

         

                   String temp = scan.nextLine();

                   // 각각 행의 열수를 구함.

                  for(StringTokenizer st = new StringTokenizer(temp," "); st.hasMoreElements();){

                      st.nextToken();

                      colsCnt++;

                  }

         

                   // 모든 행를 buffer에 저장

                   buffer += temp + "/";

         

                  // 가장 큰 열의 수를 구함 

                  if(colsCnt > colsMax) colsMax = colsCnt;

         

                  // 열수 초기화

                  colsCnt = 0;

         

                  // 행수 증가

                  rowsCnt++;

                          

              } //end_while

        

             // 최대행수 구함

            rowsMax = rowsCnt;

       

            // 배열 생성 csv 기본형태의 행과 열

            String[][] iarray = new String[rowsMax][colsMax];

            // 배열 생성 csv 행과 열의 바뀐 형태

            String[][] jarray = new String[colsMax][rowsMax];

       

            // buffer에 저장된 내용을 token으로 나눔

           StringTokenizer st = new StringTokenizer(buffer, "/");

 

          // 행수 초기화

          rowsCnt = 0;

      

          while(st.hasMoreElements()){

         

              String[] rowsline = st.nextToken().split(" ");

                           

              for (int i = 0; i < colsMax ; i++) {

                   if(rowsline.length > i) // 열수에 맞추어서 배열 넣음

                       iarray[rowsCnt][i] = rowsline[i];

                   else

                       iarray[rowsCnt][i] = ""; // 각각의 행에 열 수가 맞지 않으면 공백문자

               

         

               rowsCnt++;

               

          }

          

          // 행과 열을 바꿈

          for (int i = 0; i < colsMax; i++) {

              for (int j = 0; j < rowsMax; j++) {

                 jarray[i][j] = iarray[j][i];

             }

          }

            

     

          for (int i = 0; i < colsMax ; i++) {

     

              for (int j = 0; j < rowsMax ; j++) {          

             System.out.print(jarray[i][j] + "\t");

              }

       

              System.out.print("\n"); 

          }

     

       }

 

   }

}


이 코드는 저장한후 행과열의위치를 바꾼코드인데..


정상적으로 출력하려면어떻게해야하나요 ㅠㅠ