1

テキストファイルに1,000行のデータがあり、各行を独自のfloat[]にします。

1,1,1,1,1,1
2,2,2,2,2,2
3,3,3,3,3,3

結果は次のようになります。

 float[0] = {1,1,1,1,1,1}
 float[1] = {2,2,2,2,2,2}
 float[2] = {3,3,3,3,3,3}

これは可能ですか?ファイル全体を配列にロードする例しか見つかりませんでした。すべてのアレイをハードコーディングしようとしましたが、バイト文字の制限である〜65,000を超えました

4

4 に答える 4

3

次のことを試してください。

// this list will store all the created arrays
List<float[]> arrays = new ArrayList<float[]>();

// use a BufferedReader to get the handy readLine() function
BufferedReader reader = new BufferedReader(new FileReader("myfile.txt"));

// this reads in all the lines. If you only want the first thousand, just
// replace these loop conditions with a regular counter variable
for (String line = reader.readLine(); line != null; line = reader.readLine()) {
    String[] floatStrings = line.split(",");
    float[] floats = new float[floatStrings.length];
    for (int i = 0; i < floats.length; ++i) {
        floats[i] = Float.parseFloat(floatStrings[i]);
    }
    arrays.add(floats);
}

例外処理を追加していないことに注意してください (たとえば、readLine() は IOException をスローします)。

于 2012-09-21T02:55:44.083 に答える
0
  • LineIteratorを使用して、ファイル全体をロードせずに各行を読み取る

  • 各行に対して、正規表現を使用して(\d\.)+のような数値を抽出し、 find()group( ) などのメソッドで見つかった一致に対して反復子を使用します。

于 2012-09-21T02:43:19.847 に答える
-1

.split( "\ n")を使用してファイルの行区切りの内容をループし、各結果をfloat配列としてキャストします。文字列をフロートに変換する方法は次のとおりです=> http://www.devdaily.com/java/edu/qanda/pjqa00013.shtml

于 2012-09-21T02:36:18.730 に答える