anonymous No title
No License Java
2021年05月24日
Copy Clone

//今回扱うのに必要なクラスをインポート
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.FileWriter;

 


public class Simulator {
    public static void main(String[] args){
    
        String a=("WriteFile.txt");    //読み込むファイルを宣言
        String b=("出力ファイル");    //出力先のファイルを宣言

 

        int result = th(a,b);    //返ってきた戻り値をresultに代入
        switch(result){        //戻り値の値によって示唆される情報をswitch分で作成
            
        case 0:
            System.out.println("正常");
            break;
        case -1:
            System.out.println("ファイルが存在しません");
            break;
        case -2:
            System.out.println("年齢がただしくありません");
            break;
        case -3:
            System.out.println("性別が不明です");
            break;
            }
    }
    
    public static int th(String a,String b){
         try{

 

           //ファイルの読み込み
            File file = new File(a);

 

        //ファイルが存在しないときの処理
                if(!file.exists()){
                  //System.out.println("error:no file");
                  return -1;//ファイルがない時の戻り値を返す
                    }

 

        //BufferedReaderクラスをインスタンス化
            BufferedReader br = new BufferedReader(new FileReader(file));
        
                   
            

 

        String[] box;      //番号、名前、性別、年齢の配列
        String str="";    //1行の文字列の変数宣言
        String gender;  //性別の変数宣言    
        int sum1=0;     //男女の合計値の初期化
        int sum2=0;     //男女の合計年齢値の初期化
        int sum3=0;    //男の合計年齢の初期化
        int sum4=0;    //女の合計年齢の初期化
        int ave1=0;     //平均年齢の初期化
        int ave2=0;     //男の平均年齢の初期化
        int ave3=0;     //女の平均年齢の初期化
        int man=0;     //男の人数 の初期化
        int woman=0; //女の人数の初期化
        String str2=""; //ファイル全員分の情報の初期化

 


                     //readlineメソッド使って1行単位で読み込む
                     while((str = br.readLine()) !=null){
                         System.out.println(str); //strには1行分しか情報はないがwhile分の中なので1行の情報をを繰り返して出力する
                   str2=str2+str+"\n"; //全員分の行を代入、¥nは改行文字
                         System.out.println("----------------------------");//見やすくするために-----で区切る

 

            
             box = str.split(",",0);          //1行を配列に返す
                         int age = Integer.parseInt(box[2]);//String型の年齢をint型に変換
             if(age<0){
            return -2;          //年齢に負数が含まれる時の戻り値を返す
                         }                                          
                         sum2 = sum2 + age;//年齢の合計を計算
                         
             gender = box[3];    //今回は必要ないので記述していないがbox[0]には番号、box[1]には名前、box[3]には性別、box[4]には年齢が入っている

 

                         //男女別に人数計算
                         if(gender.equals("男性")){
                          man++;    sum3=sum3+age;        //性別が男性の時に人数を1増やして性別の合計値も計算
                         }else if(gender.equals("女性")){
                          woman++;    sum4=sum4+age;        //性別が女性の時に人数を1増やして性別の合計値も計算            
                         }else{return -3;}    //性別が男性でも女性でもない時の戻り値を返す
            
                  
                      }

 

                
            sum1 = man + woman; //男女の合計値を計算
            ave1 = sum2/sum1; //全体の平均年齢を計算
            ave2 = sum3/man;  //男性の平均年齢を計算
            ave3 = sum4/woman;//女性の平均年齢を計算
            System.out.println("男女合計:" + sum1+"人" + " 平均年齢:" + ave1+"歳");
            System.out.println("男性:" + man+"人" + " 男性の平均年齢:" + ave2+"歳");
            System.out.println("女性:" + woman+"人" + " 女性の平均年齢:" + ave3+"歳");

 

                

 

        //出力ファイル作成、BufferedWriterクラスをインスタンス化
            
                BufferedWriter bw = new BufferedWriter(new FileWriter(b));    //書き込み先のフェイル指定

 

            bw.write(str2);    //ファイル全員分の行をき出しているが今回は特に必須の処理ではない
            bw.newLine();    //改行して見やすくする        
            bw.write("男女合計:" + String.valueOf(sum1)+"人" + " 平均年齢:" +String.valueOf(ave1)+"歳");        //男女合計と平均年齢を書き込む
            bw.newLine();    //改行して見やすくする
            bw.write("男性:" + String.valueOf(man)+"人" + " 男性の平均年齢:" + String.valueOf(ave2)+"歳");    //男性数と男性の平均年齢を書き込む
            bw.newLine();    //改行して見やすくする
            bw.write("女性:" + String.valueOf(woman)+"人" + " 女性の平均年齢:" + String.valueOf(ave3)+"歳");    //女性数と女性の平均年齢を書き込む
            bw.newLine();    //改行して見やすくする 

 

            //BufferedReader BufferedWriterを閉じる
            br.close();
            bw.close();
             }catch(IOException e) {        //例外処理
                System.out.println(e);
                }

 

                return 0;    //ここまでに問題がなければ正常な戻り値を返す
     }   
    
}

//今回扱うのに必要なクラスをインポート
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.FileWriter;

 


public class Simulator {
    public static void main(String[] args){
    
        String a=("WriteFile.txt");    //読み込むファイルを宣言
        String b=("出力ファイル");    //出力先のファイルを宣言

 

        int result = th(a,b);    //返ってきた戻り値をresultに代入
        switch(result){        //戻り値の値によって示唆される情報をswitch分で作成
            
        case 0:
            System.out.println("正常");
            break;
        case -1:
            System.out.println("ファイルが存在しません");
            break;
        case -2:
            System.out.println("年齢がただしくありません");
            break;
        case -3:
            System.out.println("性別が不明です");
            break;
            }
    }
    
    public static int th(String a,String b){
         try{

 

           //ファイルの読み込み
            File file = new File(a);

 

        //ファイルが存在しないときの処理
                if(!file.exists()){
                  //System.out.println("error:no file");
                  return -1;//ファイルがない時の戻り値を返す
                    }

 

        //BufferedReaderクラスをインスタンス化
            BufferedReader br = new BufferedReader(new FileReader(file));
        
                   
            

 

        String[] box;      //番号、名前、性別、年齢の配列
        String str="";    //1行の文字列の変数宣言
        String gender;  //性別の変数宣言    
        int sum1=0;     //男女の合計値の初期化
        int sum2=0;     //男女の合計年齢値の初期化
        int sum3=0;    //男の合計年齢の初期化
        int sum4=0;    //女の合計年齢の初期化
        int ave1=0;     //平均年齢の初期化
        int ave2=0;     //男の平均年齢の初期化
        int ave3=0;     //女の平均年齢の初期化
        int man=0;     //男の人数 の初期化
        int woman=0; //女の人数の初期化
        String str2=""; //ファイル全員分の情報の初期化

 


                     //readlineメソッド使って1行単位で読み込む
                     while((str = br.readLine()) !=null){
                         System.out.println(str); //strには1行分しか情報はないがwhile分の中なので1行の情報をを繰り返して出力する
                   str2=str2+str+"\n"; //全員分の行を代入、¥nは改行文字
                         System.out.println("----------------------------");//見やすくするために-----で区切る

 

            
             box = str.split(",",0);          //1行を配列に返す
                         int age = Integer.parseInt(box[2]);//String型の年齢をint型に変換
             if(age<0){
            return -2;          //年齢に負数が含まれる時の戻り値を返す
                         }                                          
                         sum2 = sum2 + age;//年齢の合計を計算
                         
             gender = box[3];    //今回は必要ないので記述していないがbox[0]には番号、box[1]には名前、box[3]には性別、box[4]には年齢が入っている

 

                         //男女別に人数計算
                         if(gender.equals("男性")){
                          man++;    sum3=sum3+age;        //性別が男性の時に人数を1増やして性別の合計値も計算
                         }else if(gender.equals("女性")){
                          woman++;    sum4=sum4+age;        //性別が女性の時に人数を1増やして性別の合計値も計算            
                         }else{return -3;}    //性別が男性でも女性でもない時の戻り値を返す
            
                  
                      }

 

                
            sum1 = man + woman; //男女の合計値を計算
            ave1 = sum2/sum1; //全体の平均年齢を計算
            ave2 = sum3/man;  //男性の平均年齢を計算
            ave3 = sum4/woman;//女性の平均年齢を計算
            System.out.println("男女合計:" + sum1+"人" + " 平均年齢:" + ave1+"歳");
            System.out.println("男性:" + man+"人" + " 男性の平均年齢:" + ave2+"歳");
            System.out.println("女性:" + woman+"人" + " 女性の平均年齢:" + ave3+"歳");

 

                

 

        //出力ファイル作成、BufferedWriterクラスをインスタンス化
            
                BufferedWriter bw = new BufferedWriter(new FileWriter(b));    //書き込み先のフェイル指定

 

            bw.write(str2);    //ファイル全員分の行をき出しているが今回は特に必須の処理ではない
            bw.newLine();    //改行して見やすくする        
            bw.write("男女合計:" + String.valueOf(sum1)+"人" + " 平均年齢:" +String.valueOf(ave1)+"歳");        //男女合計と平均年齢を書き込む
            bw.newLine();    //改行して見やすくする
            bw.write("男性:" + String.valueOf(man)+"人" + " 男性の平均年齢:" + String.valueOf(ave2)+"歳");    //男性数と男性の平均年齢を書き込む
            bw.newLine();    //改行して見やすくする
            bw.write("女性:" + String.valueOf(woman)+"人" + " 女性の平均年齢:" + String.valueOf(ave3)+"歳");    //女性数と女性の平均年齢を書き込む
            bw.newLine();    //改行して見やすくする 

 

            //BufferedReader BufferedWriterを閉じる
            br.close();
            bw.close();
             }catch(IOException e) {        //例外処理
                System.out.println(e);
                }

 

                return 0;    //ここまでに問題がなければ正常な戻り値を返す
     }   
    
}
No one still commented. Please first comment.