• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル読み込みを配列に入れる方法)

ファイル読み込みを配列に入れる方法

このQ&Aのポイント
  • ファイルから数字を読み込み、配列に入れる方法について教えてください。
  • int型の配列に一度にファイルから取り込むことは可能なのでしょうか?
  • また、ファイルから取り込んだ数字を並び替えて出力するプログラムを作成していますが、うまく取り込むことができません。

質問者が選んだベストアンサー

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

まあ、いちばんすなおなプログラムは、こんなものでしょう。 -------------------------------------------------- /*** data.txt ***************************** 3 67 4 7 45 52 9 41 14 2 ********************************************/ import java.io.*; import java.util.*; public class Huhumu{  // 入力行数が事前に分かれば配列を使えますが…  ArrayList<String> data;  String inputFilePath;  BufferedReader br;  int[] dataArray, sortedDataArray;  public Huhumu(String path){   String line = null;   inputFilePath = path;   data = new ArrayList<String>();   try{    br = new BufferedReader(new FileReader(inputFilePath));    while ((line = br.readLine()) != null){     data.add(line);    }   }   catch (IOException e){    e.printStackTrace();   }   dataArray = makeIntArray(data);   sortedDataArray = sort(dataArray);  }  int[] makeIntArray(ArrayList<String> list){   int len = list.size();   int[] a = new int[len];   for (int i = 0; i < len; ++i){    a[i] = Integer.parseInt(list.get(i)); // 文字列->数値   }   return a;  }  int[] sort(int[] rawData){   int[] sa = rawData.clone();   for (int i = 0; i < (sa.length - 1); ++i){    for (int j = i; j < sa.length; ++j){     if (sa[i] > sa[j]){ //入れ替え      int temp = sa[i];      sa[i] = sa[j];      sa[j] = temp;     }    }   }   return sa; //元の配列をいじらない前提で  }  public static void main(String[] args){   Huhumu hm = new Huhumu("data.txt");   for (int i = 0; i < hm.sortedDataArray.length; ++i){    System.out.print(hm.sortedDataArray[i] + " ");   }   System.out.println();   } } --------------------------------------------------

huhumu
質問者

お礼

ありがとうございます。 AllayListでしたか! 大変参考になります。 初心者でまた質問、疑問等出てくると思いますが よろしくお願い致します。

その他の回答 (1)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

まず、ファイル上のデータの形式を、実物例で教えてください。 できれば、ネット上に置いた実物ファイルのURLを教えてください。

huhumu
質問者

補足

ファイルはテキストファイルで 3 67 4 7 45 のように縦書きされたもので、重複数値はないものとして 考えています。 よろしくお願いします。

関連するQ&A