JavaのApache.commons.CSVでCSVファイルでの生産を後押し

UnsplashのKristopherRollerによる写真

1.はじめに

CSV(カンマ区切り値)ファイルは、アプリケーション間でデータを交換するために広く使用されています。ただし、CSVファイルを使用した操作は、注意が必要で時間がかかる場合があります。

Apache Software Foundationは、CSVファイルの読み取り/書き込み操作で私たちの生活を楽にするApache.Commons.CSVライブラリを提供します。したがって、Apache License2.0が付属しています。

CSVファイルにはさまざまな形式があります。次の例では、従来のRFC4180形式を使用します。

ウィキペディアによるRFC4180フォーマット仕様:

あるプレーンテキストなどの文字セットを使用してASCII、様々なUnicodeの文字セット(例えばUTF-8 )、EBCDICは、またはシフトJISは、

レコードで構成され(通常、1行に1つのレコード)、

レコードが区切り文字(通常、コンマ、セミコロン、タブなどの単一の予約文字。区切り文字にオプションのスペースが含まれる場合があります)で区切られたフィールドに分割されている場合、

すべてのレコードに同じフィールドのシーケンスがある場合。

2020年にJavaプログラマーは何を学ぶべきですか?

2. Apache CommonsCSVでCSVファイルを読み取る

ParseCSVという名前の新しいMavenプロジェクトを作成し、次のスニペットをParseCSV /pom.xmlファイルに貼り付けます。

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>

国を含むサンプルCSVファイルをダウンロードし、プロジェクトディレクトリParseCSV /countries.csvに貼り付けます。

mainメソッドに次のコードを追加します。

try {
Reader csvData = new FileReader("countries.csv");
CSVParser parser = CSVFormat.RFC4180.withFirstRecordAsHeader().parse(csvData);
for (CSVRecord csvRecord : parser) {
System.out.println(csvRecord.getRecordNumber()+":"+csvRecord.get("name"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

まず、countries.csvファイルを読み取るためのReaderオブジェクトを作成します。

Reader csvData = new FileReader("countries.csv");

CSVParser parser = CSVFormat.RFC4180.withFirstRecordAsHeader().parse(csvData);

for (CSVRecord csvRecord : parser) {
System.out.println(csvRecord.getRecordNumber()+":"+csvRecord.get("name"));
}

技術の上級開発者にとって次は何ですか?プロジェクトマネージャー、テクニカルアーキテクト、またはDevOpsエンジニア

3. Apache CommonsCSVを使用してCSVファイルを作成します

書き込みのCSVでファイルをApache.Commons.CSVはちょうど簡単なようです。

次のコードスニペットをコピーして貼り付けます。

try {
FileWriter fileWriter = new FileWriter("./mountains.csv", true);
try (CSVPrinter csvPrinter = new CSVPrinter(fileWriter, CSVFormat.RFC4180)) {
//HEADER record
csvPrinter.printRecord("mountain","meters");
//DATA records
csvPrinter.printRecord("Mount Everest","8.848");
csvPrinter.printRecord("K2","8.611");
csvPrinter.printRecord("Kangchenjunga","8.586");
csvPrinter.printRecord("olumpus","2.918");
csvPrinter.flush();
}
} catch (IOException e) {
e.printStackTrace();
}

最初のステップは、mountains.csvファイルに書き込むためにFileWriterを作成します

FileWriter fileWriter = new FileWriter("./mountains.csv", true);

CSVPrinter csvPrinter= new CSVPrinter(fileWriter, CSVFormat.RFC4180)

//HEADER record
csvPrinter.printRecord("mountain","meters");
//DATA records
csvPrinter.printRecord("Mount Everest","8.848");
csvPrinter.printRecord("K2","8.611");
csvPrinter.printRecord("Kangchenjunga","8.586");
csvPrinter.printRecord("olumpus","2.918");
csvPrinter.flush();

Apache.Commons.CSVは、CSVファイルを使用した読み取り/書き込み操作のためのシンプルなインターフェースを提供します。

ただし、Apache Commons CSVは、定期的な更新と広範なドキュメントを備えた、その目的に最適なライブラリの1つです。

あなたはおそらくそれも好きでしょう:

Node.jsとOracle18cXEを使用してProのようなRESTApiを5分で構築します。 Node.jsの正規表現に関するチートシート

提案された投稿

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

Spring Boot での Apache Kafka の構成と使用

スプリングブーツを履いたカフカ

Spring Boot での Apache Kafka の構成と使用

はじめに Apache Kafka は、大規模で高スループット、フォールトトレラントなリアルタイム データ ストリーミングを処理するオープンソースの分散ストリーミング プラットフォームです。このシステムは、プロデューサーがトピックにメッセージをパブリッシュし、コンシューマーがそれらのトピックをサブスクライブしてメッセージを消費するパブリッシュ/サブスクライブ モデルに基づいています。

関連記事

電話番号だけで誰でも追跡 | OSINT調査

電話番号だけで誰でも追跡 | OSINT調査

あなたは、OSINT 調査員、CTF プレーヤー、または単にスパム電話を受けている人である可能性があります。広告で見た番号を確認しようとしている人。

その脅威アーカイブ: Vol 7 ブラックバスタ

その脅威アーカイブ: Vol 7 ブラックバスタ

今日の相互接続された世界では、サイバー攻撃の脅威がかつてないほど蔓延しています。サイバー犯罪者や国家主体は常に脆弱性を悪用して貴重なデータを盗もうとしており、あらゆる規模の組織に重大なリスクをもたらしています。

一部のフリーランサーが自分の人生を偽っている理由

一部のフリーランサーが自分の人生を偽っている理由

私は最近、世界最大のプロフェッショナルなソーシャル ネットワークである Linkedin を利用していて、フォローしているフリーランス デザイナーの注目を集めた投稿を見つけました。彼らはすべて、飛行機からの写真、ラップトップを持ってビーチで撮影した写真、スイミング プールやオフィスから素晴らしい景色を眺めた写真を投稿していました。

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。