我想从csv文件中读取数据。 这是我的代码:
public void readCSV(String path) {
monologList = new ArrayList<Monolog>();
String row = new String();
try {
br = new BufferedReader(new FileReader(path));
try {
while ((row = br.readLine()) != null) {
String[] splitted = row.split("%");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我可以运行代码,但不会将任何数据保存到splitted []。 splitted []在调试期间甚至不显示。 Eclipse告诉我:“未使用分割的局部变量的值”
我在其他项目中使用相同的代码,从“/ proc / net / arp”(Linux / Android)读取数据,它没有问题。
任何想法?
诚恳, 沃尔芬
编辑:已解决。 由于我在初始化之后没有使用splitted,所以eclipse在调试期间就删除了它。
答案 0 :(得分:2)
1。保持范围 String[] splitted
在while循环之外。
2。 String[] splitted
无法将值保留在while块之外,导致其范围结束。
答案 1 :(得分:1)
调试器往往不保存有关已启动但从未调用过的变量的数据。 在下一行中添加该数据的打印将解决问题。
答案 2 :(得分:0)
已经在while循环中声明和定义了已分割的变量。在外面宣布它。因为它不是这样,它仅限于while循环,所以不能在它之外找到它。这样做
String[] splitted;
int i = 0;
while ((row = br.readLine()) != null) {
splitted[i++] = row.split("%");
}
答案 3 :(得分:0)
你应该尝试类似的东西:
List<String> myList = new ArrayList<String>();
while ((row = br.readLine()) != null) {
myList.addAll(Arrays.asList(row.split("%")));
}
然后,您可以利用列表中的内容。