- ベストアンサー
ファイル読み込みを配列に入れる方法
- ファイルから数字を読み込み、配列に入れる方法について教えてください。
- int型の配列に一度にファイルから取り込むことは可能なのでしょうか?
- また、ファイルから取り込んだ数字を並び替えて出力するプログラムを作成していますが、うまく取り込むことができません。
- みんなの回答 (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(); } } --------------------------------------------------
その他の回答 (1)
- _ranco_
- ベストアンサー率58% (126/214)
まず、ファイル上のデータの形式を、実物例で教えてください。 できれば、ネット上に置いた実物ファイルのURLを教えてください。
補足
ファイルはテキストファイルで 3 67 4 7 45 のように縦書きされたもので、重複数値はないものとして 考えています。 よろしくお願いします。
お礼
ありがとうございます。 AllayListでしたか! 大変参考になります。 初心者でまた質問、疑問等出てくると思いますが よろしくお願い致します。