0
3

More than 1 year has passed since last update.

JavaでCSV読み込み (Super CSV Annotation)

Last updated at Posted at 2020-08-21

Super CSV Annotationを使う
https://mygreen.github.io/super-csv-annotation/project-info.html

EclipseでMavenプロジェクトを新規作成、Javaのバージョンは1.8

pom.xml
	<dependencies>
		<dependency>
			<groupId>com.github.mygreen</groupId>
			<artifactId>super-csv-annotation</artifactId>
			<version>2.3</version>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.26</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<version>2.0.6</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>2.0.6</version>
		</dependency>
	</dependencies>
XXXCsvBean.java
import com.github.mygreen.supercsv.annotation.CsvBean;
import com.github.mygreen.supercsv.annotation.CsvColumn;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@CsvBean
@NoArgsConstructor
@AllArgsConstructor
@Data
public class XXXCsvBean {
    @CsvColumn(number = 1)
    private String user;

    @CsvColumn(number = 2)
    private String email;
}
XXX.java
                try (CsvAnnotationBeanReader<XXXCsvBean> csvReader = getCsvReader(inputStream /* 標準入力ならSystem.in */)) {
                    csvReader.getHeader(true); // ヘッダ行スキップ
                    XXXCsvBean readRecord;
                    while ((readRecord = csvReader.read()) != null) { // Windowsの標準入力ならCTRL+ZでEOFを入力するまで
                        String user = readRecord.getUser();
                        // do something
                    }
                }

--

    private CsvAnnotationBeanReader<XXXCsvBean> getCsvReader(InputStream inputStream) {
        return new CsvAnnotationBeanReader<>(XXXCsvBean.class,
                new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)), // Windowsの標準入力ならキャラセット指定なし
                CsvPreference.STANDARD_PREFERENCE); // TSVならTAB_PREFERENCE
    }
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3