2017-08-09 9 views
1

これは簡単かもしれませんが、実際には私のことではありませんが、私はJava APIを使って作業しています。文字列としてのCsvデータを使用するjava

私はcsvファイルを解析し、文字列としての値を使用する必要があります。

CSVファイル:

Mac,device,level ,key number,key function ,name,number,prim 
01:1A:E8:84:9D:27,0,0,1,31,line,441865945218,TRUE 
01:1A:E8:84:9D:27,0,0,2,51,dss,441865985452,FALSE 

各行はそうsepratelyのようなものを読んでする必要があります。

  1. CSVファイルの最初の行を読む文字列(例えば、MAC = 01:1A:E8:84:9D:27デバイス= 0など)へ
  2. 割当値
  3. 実行 "コード" を使用して、これらの文字列
  4. csvファイルの最後までそうにCSV
  5. の二行を読みます。

おかげ

私はcsvreaderを試してみましたが、私はしばらくの間関数の外で列を使用することはできないんだけど、それは行ずつ読んでいません。

CsvReader phones = new CsvReader("dls.csv"); 

phones.readHeaders(); 

while (phones.readRecord()){ 

    String deviceID = phones.get("Mac"); 
    String device = phones.get("device"); 
    String level = phones.get("level"); 
    String keynumber = phones.get("key number"); 
    String keyfunction = phones.get("key Function"); 
    String label = phones.get("name"); 
    String e164 = phones.get("number"); 
    String prim = phones.get("prim"); 
} 
+1

あなたは 'while'ループの中で文字列を宣言していますが、どうしてあなたはその文字列の外でそれらを使用できると思いますか? – UnholySheep

+0

ちょうど彼らの外の関数を呼び出す... –

+0

なぜBufferedReaderを使用せず、その中でreadLine()メソッドを使用するのですか? – ramasCoder

答えて

1

Javaを使い慣れていなくても、何をしていても、ファイルを1行ずつ読み込むようです。しかし、文字列をwhileループに定義しているので、それを外部にアクセスすることはできません。 あなたは文字列内のすべての行と店を読みたい場合は、おそらくそれらのすべてのための配列を取得し、whileループの外でそれらを定義、ループ内で値を追加して、あなたはそれを使用することができます必要があります。

public class Phone{ 
String deviceId; 
String device; 
......etc... 
//setters and getters 
} 

をそして、それ外whileの配列を取る:

それともPhoneクラスを作成します。このようなもの:

CsvReader phones = new CsvReader("dls.csv"); 

     phones.readHeaders(); 
     List<Phone> phonesArr=new ArrayList<Phone>(); 
     while (phones.readRecord()) 
     { 
      Phone phone=new Phone(); 
      phone.setDeviceId(phones.get("Mac")); 
      phone.setDevice(phones.get("device")); 
      ..... 
      phones.add(phone); 
     } 
// array phones will be accessible here 

希望がある!

0

あなたは、ループの外に文字列を宣言する必要があります。それ以外の場合、String変数はループスコープになります。

CsvReader phones = new CsvReader("dls.csv"); 

phones.readHeaders(); 

String deviceID; 
String device; 
String level; 
String keynumber; 
String keyfunction; 
String label; 
String e164; 
String prim; 

while (phones.readRecord()){ 

    deviceID = phones.get("Mac"); 
    device = phones.get("device"); 
    level = phones.get("level"); 
    keynumber = phones.get("key number"); 
    keyfunction = phones.get("key Function"); 
    label = phones.get("name"); 
    e164 = phones.get("number"); 
    prim = phones.get("prim"); 
} 

参照:最後に

Scopes tutorial

Javadoc: Variables

0

私は、whileループから目的球と呼ばれます。

while (phones.readRecord()) { 
       deviceID = phones.get("Mac"); 
       Device = phones.get("device"); 
       Level = phones.get("level"); 
       Keynumber = phones.get("key number"); 
       Keyfunction = phones.get("key function"); 
       Label = phones.get("name"); 
       E164 = phones.get("number"); 
       Prim = phones.get("prim"); 

       tools connect = new tools(); 
       connect.connect(); 
       connect.setkeys(deviceID,Device,Level,Label,Keynumber,Keyfunction,E164,Prim); 
       //System.out.println(Prim); 

      } 
      phones.close(); 
関連する問題