java读取TXT文件数据 如何三行算一次循环提取
try{BufferedReaderinput=newBufferedReader(newFileReader(targetPath));while((f=input.r...
try {
BufferedReader input =new BufferedReader(new FileReader(targetPath));
while ((f=input.readLine())!=null) {
String info[] = f.split(" ");
HashMap map=new HashMap<>();
if(xfname!=null){
xfname=new String(ServletActionContext.getRequest().getParameter("xfname").getBytes(),"UTF-8");
map.put("code", info[0].trim());
map.put("area", xfname);
list.add(map);
System.out.println(list);
}else{
map.put("code", info[0].trim());
list.add(map);
}
}
} catch (Exception e) {
}
代码这样每次只能读取一行 如何读取三行的info[0]再进入下一次循环呢 展开
BufferedReader input =new BufferedReader(new FileReader(targetPath));
while ((f=input.readLine())!=null) {
String info[] = f.split(" ");
HashMap map=new HashMap<>();
if(xfname!=null){
xfname=new String(ServletActionContext.getRequest().getParameter("xfname").getBytes(),"UTF-8");
map.put("code", info[0].trim());
map.put("area", xfname);
list.add(map);
System.out.println(list);
}else{
map.put("code", info[0].trim());
list.add(map);
}
}
} catch (Exception e) {
}
代码这样每次只能读取一行 如何读取三行的info[0]再进入下一次循环呢 展开
3个回答
展开全部
try {
BufferedReader input =new BufferedReader(new FileReader(targetPath));
int line = 0;
while ((f=input.readLine())!=null) {
while(line < 2){
f += input.readLine();
line++;
}
String info[] = f.split(" ");
HashMap map=new HashMap<>();
if(xfname!=null){
xfname=new String(ServletActionContext.getRequest().getParameter("xfname").getBytes(),"UTF-8");
map.put("code", info[0].trim());
map.put("area", xfname);
list.add(map);
System.out.println(list);
}else{
map.put("code", info[0].trim());
list.add(map);
}
}
} catch (Exception e) {}
追问
readline遇到空行会读取一个空字符串 如何能去掉这个空字符串 要不然list中会有很多的空字符串- -
追答
......
int line = 0;
while ((f=input.readLine())!=null) {
while(line < 2){
f += input.readLine();
line++;
}
line = 0;
//对数组进行排序,把空值移到数组的最后
int numberOfNull =0;
String moveNull[] = f.split(" ");
for(int i = 0; i< moveNull.length;i++){
if(moveNull[i] == null){
for(int j = i; j< moveNull.length;j++){
if(j != (moveNull.length-1))
moveNull[j] = moveNull[j+1];
}
numberOfNull++;
}
}
//把数组中有效值,转移到另外一个数组中。
String[] info = new String[(moveNull.length-numberOfNull)];
for(int p =0;p < moveNull.length;p++)
info[p] = moveNull[p];
HashMap map=new HashMap<>();
.......
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果不考虑性能,可以先读出来放到一个新的数组中啊,再循环新的数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询