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

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

詳細はこちら
CSV

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

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

3512閲覧

Javaのオブジェクト指向でcsvファイルを読み込み形式を変更するコードのエラー

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

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

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2018/05/22 07:08

前提・実現したいこと

以下の参考資料に記載されているコードを元に
Javaのオブジェクト指向で書かれたプログラムで
csvファイルを読み込み形式を変更した上で新たなcsvファイルを
書き出そうとしています。

参考資料

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

2つの問題に直面しています。

①Eclipseで実行しているのですが、どこのフォルダに入力するcsvファイルを
おけばいいのかわからない

②以下のエラーが表示されており、それぞれどのように
修正すればよいのか分かりません。
Testクラス(12行目)

新規クラス・ウィザードを開いて型を作成します。 パッケージ: (デフォルト・パッケージ) public class PrintWrite extends PrintWriter { }

Testクラス(15行目、19行目、43行目)

line = InputLine.readLine(); //ヘッダを読み込む outputLine.println(line); //ヘッダを書き込む ... //1行ずつ読み込み while((line = InputLine.readLine()) ! = null) { //String変数 lineに格納 StringTokenizer st = new StringTokenizer(line); //lineを分 割の対象にする ... //開いていた出入力ファイルを閉じる InputLine.close(); outputLine.close();

Testクラス(25,36行目)

メソッド setNumber(int) は型 Car で未定義です

該当のソースコード

コードは全て参考資料の通りです。

Testクラス

Java

1import java.io.*; //Java.ioパッケージ 2import java.util.*;//Java.utilパッケージ 3 4public class Test { 5 public static void main(String[] args) { 6 List<Car> carList = new ArrayList<Car>(); //データ格納用リスト 7 String input = "carSample.csv";//String型でファイル名を指定する 8 String output = "copy.csv"; 9 10 try { 11 BufferedReader InputLine = new BufferedReader(new FileReader(input)); 12 PrintWriter outputLine = new PrintWrite(new FileWriter(output)); 13 String line; 14 15 line = inputLine.readLine(); //ヘッダを読み込む 16 outputLine.println(line); //ヘッダを書き込む 17 18 //1行ずつ読み込み 19 while((line = inputLine.readLine()) ! = null) { //String変数lineに格納 20 StringTokenizer st = new StringTokenizer(line); //lineを分割の対象にする 21 22 Car car = new Car(); //Carクラスのインスタンスを作成 23 //フィールドの設定を行う 24 //String型をInteger型に変更 25 car.setNumber(Integer.parseInt(st.nextToken(","))); 26 car.setLength(Integer.parseInt(st.nextToken(","))); 27 car.setWidth(Integer.parseInt(st.nextToken(","))); 28 car.setHight(Integer.parseInt(st.nextToken(","))); 29 car.setDisplacement(Integer.parseInt(st.nextToken(","))); 30 31 carList.add(car); //リストに追加する 32 } 33 34 //carListの中身を順に出力する 35 for(Car car : carList) { 36 outputLine.print(car.getNumber() + ","); 37 outputLine.print(car.getLength() + ","); 38 outputLine.print(car.getWidth() + ","); 39 outputLine.print(car.getHight() + ","); 40 outputLine.print(car.getDisplacemet()); 41 } 42 //開いていた出入力ファイルを閉じる 43 inputLine.close(); 44 outputLine.close(); 45 }catch(IOException e) { 46 System.out.println("ファイルが開けません"); 47 } 48 49} 50 51} 52

Carクラス

Java

1public class Car { 2 //フィールド 3 //メンバはprivate, メソッドはpublic 4 private int length; 5 private int width; 6 private int hight; 7 private int displacement; 8 9 //メンバにはgetter, setterメソッドでアクセスする 10 public int getLength() { 11 return length; 12 } 13 public void setLength(int length) { 14 this.length = length; 15 } 16 public int getWidth() { 17 return width; 18 } 19 public void setWidth(int width) { 20 this.width = width; 21 } 22 public int getHight() { 23 return hight; 24 } 25 public void setHight(int hight) { 26 this.hight = hight; 27 } 28 public int getDisplacemet() { 29 return displacement; 30 } 31 public void setDisplacement(int displacement) { 32 this .displacement = displacement; 33 } 34 35} 36

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

Eclipse Java EE IDE for Web Developers.
Version: Oxygen.3a Release (4.7.3a)

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

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

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

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

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

guest

回答1

0

ベストアンサー

①Eclipseで実行しているのですが、どこのフォルダに入力するcsvファイルを
おけばいいのかわからない

通常の設定なら、プロジェクトのトップフォルダに置けば良いはずです。

もしそれでダメなら、下記を参考にプログラム実行時のカレントフォルダを出力させ、そこに置いてみて下さい。
参考:http://javatechnology.net/java/current-directory/

②以下のエラーが表示されており、それぞれどのように
修正すればよいのか分かりません。

これは参考資料が間違っていますね。
文字通り「CarクラスにsetNumber(int)とgetNumber()メソッドが無い」のが原因なので、それを追加すればOKです。

Java

1新規クラス・ウィザードを開いて型を作成します。 2 3パッケージ: (デフォルト・パッケージ) 4public class PrintWrite extends PrintWriter { 5}

あと、上記コードを書く意味が分からないのですが、何故必要なのでしょうか?

投稿2018/05/22 07:39

rtr1950x

総合スコア298

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

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

退会済みユーザー

退会済みユーザー

2018/05/23 01:20

今回の質問はご回答いただいた内容で解決することができました。 この度はありがとうございました。引き続き、別の問題が発生したため、 別途質問させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問