質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

90.49%

  • Java

    13818questions

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

Javaでファイルを読み込むプログラムのエラー

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 106

Momomo.

score 16

Javaでテキストファイルを読み込み、ファイル内にあるID、名字、名前、IPアドレスをプリントするプログラムを書いています。

1つ目のプログラム ”Employee"

public class Employee {
    private int id;
    private String lastname;
    private String firstname;
    private String ip;

    public Employee(int data, String lastname, String firstname, String ip) {

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

        public String toString() {
            return id + "," + lastname + "," + firstname + "," + ip;
    }
}

2つ目のプログラム "ReadMyFile"

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;

public class ReadMyFile {

        public static void main(String[] args) {
            if (args.length > 0) {
                System.out.println("The file name: "+args[0]);
                File f = new File(args[0]);
                try{
                    Scanner s = new Scanner(f);

                    String[] data;
                    Employee emp;
                    ArrayList<Employee> aList = new ArrayList();                     

                    System.out.printf("%3s %-15s %-15s %n","ID","FIRSTNAME","LASTNAME"); 
                    while(s.hasNextLine()){
                        data = s.nextLine().split(",");
                        System.out.printf("%3s %-15s %-15s %n",data[0],data[1],data[2]);
                        emp = new Employee (data[0],data[1],data[2],data[3]);
                        aList.add(emp);
                    }
                    s.close();

                    display(aList);
                    aList.get(0).setId(100);
                }catch (FileNotFoundException e){
            }
        }
}

        private static void display(ArrayList<Employee> aList) {
            Employee e;
            System.out.println("ID    LASTNAME    FIRSTNAME    IP");
            for(int i=0; i<aList.size(); i++){
                e = aList.get(i);
                System.out.printf("%3s %-15s %-15s %15s %n",e.getId(),e.getFirstname(),e.getLastname(),e.getIp());
            }
        }
}

ご覧いただけるように、1つ目のプログラムEmployeeはsetFirstnameやgetFirstnameが書かれたもの、2つ目のプログラムReadMyFileはファイルを読み込み、ディスプレイするものです。

2つ目のプログラムの23列目のステートメント、
emp = new Employee (data[0],data[1],data[2],data[3]);
に対してエラーが出ており、どのように直したらいいかわかりません。

エラー表示

どのようにすればエラーをなくせるでしょうか?よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

Employeeのコンストラクタは
public Employee(int data, String lastname, String firstname, String ip)
という定義になってます
第一引数はint です

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/22 15:59

    それではIDだけをintとして別のarrayに入れるべきでしょうか?
    それともIDもStringとした方がいいのでしょうか?

    キャンセル

  • 2018/05/22 16:05

    それはあなたがどう使いたいかによって、あなたが決めることです
    string 4つの引数で動かせたいなら、そういうふうにコンストラクタを書く必要があります

    キャンセル

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

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13818questions

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