ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • tsv 파일의 내용 취득
    [공부] 프로그래밍/Spring・Spring Boot (JAVA) 2023. 8. 19. 15:23

     

     

    tsv 파일의 내용 취득 처리

     
    tsvFile이라는 변수에서 getInputStream() 메서드를 호출하여 TSV 파일의 입력 스트림을 가져오고, InputStream 타입 inputStream 변수에 저장한다. 이 입력 스트림을 통해 파일의 내용을 읽을 수 있게 된다. inputStream을 InputStreamReader로 감싸고, 그 위에 BufferedReader를 사용하여 버퍼링된 입력을 제공한다. 이렇게 함으로써 효율적으로 데이터를 읽을 수 있다. BufferedReader는 텍스트를 한 줄씩 읽을 수 있도록 도와준다.
    line은 각 줄의 내용을 저장할 변수이고 lineNum은 현재 읽고 있는 줄의 번호를 저장하는 변수이다.
    reader.readLine()은 파일에서 한 줄을 읽어오며, 만약 더 이상 읽을 줄이 없다면 (null을 반환한다면) 반복문이 종료된다. 각 줄을 읽을 때마다 lineNum이 증가하고, line 문자열을 \t (탭) 문자를 기준으로 나누어서 문자열 배열 columnArray에 저장한다.
    lengthOfColumns라는 메서드를 호출하여 열의 길이를 조절한다. 이 메서드는 String [] 타입의 배열을 받아 열의 길이를 조절하여 반환한다. 만약 입력된 열의 길이가 10이 아니라면, 길이가 10인 새로운 String [] 배열 lengthOfColumns를 생성한다. System.arraycopy(columns, 0, lengthOfColumns, 0, Math.min(columns.length, 10)) 입력 열에서 새 배열로 최대 10개까지의 요소를 복사한다.

    ・ columns: 복사할 요소가 있는 원본 배열
    0: 복사가 시작되어야 하는 원본 배열의 시작 인덱스
    lengthOfColumns: 요소가 복사될 대상 배열
    0: 복사된 요소가 배치되어야 하는 대상 배열의 시작 인덱스
    Math.min(columns.length, 10): 복사할 요소의 개수
    소스 배열의 길이(columns.length)와 원하는 길이(10) 사이의 최솟값을 계산하여 소스 배열의 요소가 10개 미만인 경우 최대 10개의 요소만 복사되도록 한다.

    나머지 요소들을 빈 문자열로 채워 열의 길이를 10으로 맞추어준다. 

    InputStream inputStream = tsvFile.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    
    String line;
    int lineNum = 0;
    
    while ((line = reader.readLine()) != null) {
        lineNum++;
        String[] columnArray = line.split("\t");
        String[] columns = lengthOfColumns(columnArray);
    }
    
    public String[] lengthOfColumns(String[] columns) {
        if (columns.length != 10) {
            String[] lengthOfColumns = new String[10];
            System.arraycopy(columns, 0, lengthOfColumns, 0, Math.min(columns.length, 10));
            for (int i = columns.length; i < 10; i++) {
                lengthOfColumns[i] = "";
            }
            return lengthOfColumns;
        }
    
        return columns;
    }

     

    '[공부] 프로그래밍 > Spring・Spring Boot (JAVA)' 카테고리의 다른 글

    tsv 파일 생성  (0) 2023.08.19
    유효성 체크  (0) 2023.08.19
    일시 생성 처리  (0) 2023.08.19
    파일 확장자 제거  (0) 2023.08.19
    iterator, Map  (0) 2023.04.27
Designed by Tistory.