0

大量のデータをテーブルに読み込むために、アプリケーションに CSV ファイルを読み込もうとしています。すべての行はコンマで区切られ、行の両端にはキャリッジ リターンがあります。Java でスキャナーを使用して、区切り文字を (",") に設定して最初の行を読み取ろうとしましたが、キャリッジ リターンに達したときに最初の行の最後でスキャナーを停止する方法がわかりません。これは、改行で止まらないため、ファイル内のすべてをスキャンするこれまでのコードです。

Scanner scn = new Scanner(inputStream);

                    Vector<String> columnTitles = new Vector<String>();
                    scn.useDelimiter(",");

                    // Read the first line to get the column names.
                    while(!scn.hasNextInt())
                    {
                        String newStr = scn.next();
                        columnTitles.add(newStr);
                        System.out.print(newStr);
                    }

アイデアはとてもシンプルに見えますが、私が見たところどこでも役に立たない役に立たない例があります。

4

3 に答える 3

3

columnTitles ベクトルにファイルの最初の行を入力してから、残りのファイルを処理しようとしている場合 (または処理しない場合)

  1. ファイルで BufferedReader を使用して、最初の行を文字列に読み込みます
  2. その文字列を使用してスキャナーを作成します
  3. ステップ 2 のスキャナーを使用してベクターを設定します。
  4. 次に、ファイルの残りの部分を処理する場合は、上記と同じように実行しますが、while ループの前に scn.nextLine() を呼び出して、ファイルの最初の行をスキップします。
于 2013-09-17T20:44:50.593 に答える
0

キャリッジ リターンは Unicode/ASCII の制御文字であり、他の「可視」文字と同様に 16 進値で識別できます。New Line は 0x0A (10) で、Carriage Return (これらは若干異なるものです) は 0x0D (13) です。

于 2013-09-17T20:30:14.477 に答える