🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

2519閲覧

getter,setterのcsvデータとの扱い方 JAVA

Takalog

総合スコア7

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/02/12 01:49

前提・実現したいこと

CSVファイルからデータを読み取り、カプセル化を行いたいです。

ここに質問の内容を詳しく書いてください。
mainクラスの中に読み込み用のメソッドを定義して、
outputクラスでsetter,getterを用いて
csvデータを格納し、表示につなげたいとおもっております。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

どのようにデータをわたしたらよいかわからないです

エラーメッセージ 今のところはまだ

該当のソースコード

package kadai4;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Kad {

public static void main(String[] args) { //インスタンスメソッド作成 Kad getbookInfo = new Kad(); String[] input = getbookInfo.getBookInfo(); Kad read_data = new Kad(); List<String> readDataList = new ArrayList<String>(); readDataList = read_data.inputBookInfo(input); } private String[] getBookInfo () { BufferedReader br = null ; String line = null ; String[] input = null ; try{

// //バイトストリームをテキスト形式に変換、文字コードの指定
final InputStreamReader ORS = new InputStreamReader(new                       FileInputStream("BookTITLE.csv"), "SJIS");

// //テキスト形式に変換した上記ファイルの読み込み
br = new BufferedReader(ORS);

// 1行ずつCSVファイルを読み込む while((line = br.readLine()) != null ) {

// 行をタブ区切りで配列に変換 -1にすることでnullも取得できる

input = line.split(",",-1); //上記で配列に格納したデータを呼び出していく for (int i = 0 ; i < input.length ; i++) { //ここでsetterの使用? } } return input ; } catch (FileNotFoundException e) { final String NOT_FOUND = "ファイルが見つかりません。"; System.out.println(NOT_FOUND) ; } catch (IOException e) { final String IOERROR = "文字入力に関するエラー。" ; System.out.println(IOERROR); } catch (Exception e) { final String ERROR = "その他のエラー発生。" ; System.out.println(ERROR); } finally { try { br.close(); } catch (Exception e) { final String ERROR = "ファイルを閉じれませんでした。"; System.out.println(ERROR); } } return null; }

}

class Output {
String title;
String name;
String start;
String end;
int price;

String getTitle() { return this.title; } void setTitle (String title) { this.title = title; } String getName() { return this.name; } void setName (String name) { this.name = name; } String getStart() { return this.start; } void setStart (String start) { this.start = start; } String getEnd() { return this.end; } void setEnd (String end) { this.end = end; } int getPrice() { return this.price; } void setPrice (int price) { this.price = price; }

}

Java ソースコード

試したこと

ここに問題に対して試したことを記載してください。
netサーフィン、教科書のデータクラス、カプセル化、setter,getterについて調べ、
読みましたが、できません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
csvファイルのデータは10行5列で、
タイトル,著者,製作開始日,終了日,売価
のデータが入ってます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2021/02/12 04:18

> setter,getterについて調べ、読みましたが、できません。 setter,getterの言葉の意味が、わからないということですか?
Takalog

2021/02/12 04:30

setName(),getName()のようなものです。
guest

回答1

0

ベストアンサー

  1. 一行読み込んだら、
  2. カンマでばらして、
  3. Outputのインスタンスを生成し、
  4. Outputのインスタンスに設定して、
  5. これをファイルの最後まで繰り返して、
  6. 返す。

java

1 2import java.io.BufferedReader; 3import java.io.FileInputStream; 4import java.io.InputStreamReader; 5import java.util.ArrayList; 6import java.util.List; 7 8public class Kad { 9 10 public static void main(String[] args) throws Exception { 11 //インスタンスメソッド作成 12 Kad getbookInfo = new Kad(); 13 List<Output> input = getbookInfo.getBookInfo(); 14 15 // Kad read_data = new Kad(); 16 // List<String> readDataList = new ArrayList<String>(); 17 // readDataList = read_data.inputBookInfo(input); 18 } 19 20 private List<Output> getBookInfo() throws Exception { 21 final List<Output> buf = new ArrayList<>(); 22 final BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("BookTITLE.csv"), "SJIS")); 23 24 // 1行ずつCSVファイルを読み込む 25 while (br.ready()) { 26 final String[] input = br.readLine().split(","); 27 final Output output = new Output(); 28 29 //上記で配列に格納したデータを呼び出していく 30 for (int i = 0; i < input.length; i++) { 31 //ここでsetterの使用? 32 switch (i) { 33 case 0: 34 output.setTitle(input[i]); 35 break; 36 case 1: 37 output.setName(input[i]); 38 break; 39 case 2: 40 output.setStart(input[i]); 41 break; 42 case 3: 43 output.setEnd(input[i]); 44 break; 45 case 4: 46 output.setPrice(Integer.parseInt(input[i])); 47 break; 48 } 49 } 50 51 buf.add(output); 52 } 53 54 br.close(); 55 56 return buf; 57 } 58}

投稿2021/02/12 02:42

編集2021/02/12 03:27
shiketa

総合スコア4054

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Luice

2021/02/12 03:02

BufferedReaderの閉じカッコが足らない…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問