75135


FileReadクラスで掃除役割というテキストファイルからデータを取得して、そのデータをYakuwariクラスでListに格納したいです。クラス間でのデータ移動方法を教えてほしいです。

[code]

    public class FileRead {
        public static void yakuwariFileRead() {//役割読み込みメソッド
            Reader fr = null;
            BufferedReader br = null;
            String line = null;
    
            try {
                fr = new FileReader("掃除役割一覧.txt");//読み取り元データ
                br = new BufferedReader(fr);
                while ((line = br.readLine()) != null) { //全て読み込み終わるまで
                    //System.out.println(line);
                }
    
            } catch (IOException e) {
                System.out.println("「掃除役割一覧.txt」ファイルが見当たりません");
    
            } finally {
                if (fr != null) {
                    try {
                        fr.close();
                    } catch (IOException e2) {
                        System.out.print("ファイルが閉じられていません");
                    }
                }
            }
        }
    }
    
    public class Yakuwari {
        public static void yakuwari() {
            List<String> yakuwariList = new ArrayList<String>();//役割一覧を格納するListの作成
    
            FileRead.yakuwariFileRead(); //掃除役割一覧を読み込むメソッド
        }
    }
    
[/code]


CC BY-SA 4.0
2021-04-07T05:39:31.697
75133
2021-04-07T05:59:21.203
2021-04-07T05:41:34.650
3060
41769
question
java
JavaでのFileReaderを用いて取得したデータを別クラスのListに格納したい


元のプログラムを尊重すると、`yakuwariFileRead` メソッドに List を渡せるようにして、

[code]

    public static void yakuwariFileRead(List<String> list) {//役割読み込みメソッド
        Reader fr = null;
        BufferedReader br = null;
        String line = null;
    
        try {
            fr = new FileReader("list.txt");//読み取り元データ
            br = new BufferedReader(fr);
            while ((line = br.readLine()) != null) { //全て読み込み終わるまで
                list.add(line);
            }
        } catch (IOException e) {
    
[/code]

Yakuwari 側で引数として渡してあげれば、一応は達成できますが……

[code]

    FileRead.yakuwariFileRead(yakuwariList); //掃除役割一覧を読み込むメソッド
    
    for (String line: yakuwariList) {
        System.out.println(line);
    }
    
[/code]

これでは、単に関数的なサブルーチンだと思うんですよね。クラス間での受け渡しと言えるのかどうか。


CC BY-SA 4.0
2021-04-07T05:59:21.203
75135
2021-04-07T05:59:21.203
7290
75133
answer