请问如何将D盘下的test.txt文件解析出来,生成{Name01=Value1;Name02=Value2;Name03=Value3;Name04=Value4;Name05=Value5;Name06=Value6;}目前我知道如何拆分字符串,但是无法正确存入Map中,总是有null值,不知道什么原因?
解决方案 »
- ajax的async设置成false
- 在eclipse中怎麼部署j2ee項目到tomcat中
- HttpServletRequest是个接口,为啥可以实例化呢?
- tomcat端口老被占用,起不来,必须重启电脑!!!
- 关于httpurlconnection
- 谁能帮忙写个傻瓜式简单的java+access数据库教程,让我java数据库入门。
- JNDI问题
- Sping+Hibernate中的事务控制问题
- tomcat5.0.30下<jsp:include>传递的参数不能中文显示
- Struts中的哪个标签可以在jsp中写session的内容?
- JAVA如何获取 一个字符串中 连续特定重复字符串的长度?
- struts2 自定义拦截器 无法读取cookie
try {
FileInputStream fis = new FileInputStream(new File("D:\\test.txt"));
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufferedReader = new BufferedReader(isr);
String line;
System.out.println("文件内容:");
String [] keys = null;
String [] values = null;
while ((line = bufferedReader.readLine()) != null) {
String [] arrStr = line.split("\\s+");
if (line.startsWith("N")) {
keys = new String[arrStr.length];
}
if (line.startsWith("V")) {
values = new String[arrStr.length];
}
// values = new String[arrStr.length];
for (int i = 0;i < arrStr.length;i++) {
if (line.startsWith("N")) {
keys[i] = arrStr[i];
} else if (line.startsWith("V")) {
values[i] = arrStr[i];
}
}
}
// 正常情况下,长度应该是相等的
Map map = new HashMap();
if (keys.length == values.length) {
for (int i = 0; i < keys.length; i++) {
map.put(keys[i],values[i]);
}
}
System.out.println(Arrays.toString(keys));
System.out.println(Arrays.toString(values));
System.out.println(map);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
大概改成这样就好了,你代码问题一:每次都在while中给keys 和 values 重新new,导致会出现null的情况;
因为是name 和 value不在同一列,所以读出来赋值的时候要特别注意;