这可能很简单,但java不是我的事,但我正在使用java API。
我需要解析一个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
每行需要分别读取,例如。
谢谢
我已经尝试过csvreader但是我无法使用while函数之外的字符串而且它不能逐行读取。
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");
}
答案 0 :(得分:1)
由于您不熟悉Java,无论您在做什么,看起来都是逐行读取文件。但是当您在while
循环中定义字符串时,您无法在外部访问它。
如果你想读取所有的行并存储在字符串中,你应该为所有这些行取数组并在while
循环之外定义它们,在循环中添加值然后你就可以使用它了
或者只创建一个Phone
类:
public class Phone{
String deviceId;
String device;
......etc...
//setters and getters
}
在while
之外取一个数组。像这样:
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
希望有所帮助!
答案 1 :(得分: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");
}
请参阅:
答案 2 :(得分: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();