我想读取一个文件detail.dat,里面的内容是这样的
20010510|10000300||MAEKAWA_TEST tok1-ope1|0|DP00050|SOHIN_NAME101|17|28000|476000|5|999999
20010510|10000300||MAEKAWA_TEST tok1-ope1|0|DP00060|SOHIN_NAME102|9|30000|270000|5|999999
20010510|10000300||MAEKAWA_TEST tok1-ope1|0|DP10052||603927|0.18|108706|5|999999
20010510|10000300||MAEKAWA_TEST tok1-ope2|0|DP00050||17|28000|476000|5|890244
要做的是把数据逐行读取出来,并把每行的数据根据“|”分离,显示出来
还有统计一下这个文件是多少行
谢谢大家指点,小弟新手
20010510|10000300||MAEKAWA_TEST tok1-ope1|0|DP00050|SOHIN_NAME101|17|28000|476000|5|999999
20010510|10000300||MAEKAWA_TEST tok1-ope1|0|DP00060|SOHIN_NAME102|9|30000|270000|5|999999
20010510|10000300||MAEKAWA_TEST tok1-ope1|0|DP10052||603927|0.18|108706|5|999999
20010510|10000300||MAEKAWA_TEST tok1-ope2|0|DP00050||17|28000|476000|5|890244
要做的是把数据逐行读取出来,并把每行的数据根据“|”分离,显示出来
还有统计一下这个文件是多少行
谢谢大家指点,小弟新手
BufferedReader in = new BufferedReader (new FileReader("路径\\detail.dat"));
String strLine="";
String[] everyLineContent;
int lineCount=0;
short i =0;
while ((strLine=in.readLine())!=null){//循环读出每行
everyLineContent = strLine.split("|");
for (i =0 ; i <everyLineContent.length ; i++){
System.out.println(everyLineContent[i]);
}
lineCount = lineCount+1+(i==0?0:i-1);
}
} catch (IOException e){
System.out.println(e);
}
BufferedReader bReader = new BufferedReader(reader);
String s = "";
String[] ss;
int count = 0;
while (true) {
s = bReader.readLine();
if (s != null) {
i++;//记录行数
ss = s.split("[|]+");
for (int j = 0; j < ss.length; j++) {
System.out.print(ss[j] + " ");//每个记录隔一个空格打印出来
}
} else {
break;
}
System.out.println();
}
reader.close();
bReader.close();
System.out.println(i);//显示行数
BufferedReader reader;
reader = new BufferedReader( new FileReader(nt2000.sysConfig.CommonConfig.ProjectPath + "/ic.dat"));
while(1){
String portstr = reader.readLine();
if (psrtstr == null)
break;
list.add(portstr); //把每行放进arraylist中,已不包含加车换行符。
}
int len = list.size(); //行数
要分离"|":String[] substrs = list.get(0).split("\\|");这样,就把每行分出的子字符串放在substrs中了。
未经测试。
...
while(true)
...
还有,要捕捉异常。
import java.io.*;
public class ReadFileTest { public static void main(String[] args)throws Exception {
String fileName="D:\\detail.dat";
File objFile=new File(fileName);
if(objFile.exists()){
FileReader objRedfile=new FileReader(objFile);
BufferedReader bReader=new BufferedReader(objRedfile);
String str="";
String[] ss;
int count=0;
while((str=bReader.readLine())!=null){
count++;
ss=str.split("[|]+");
for(int i=0;i<ss.length;i++){
System.out.print(ss[i]+",");
}
System.out.println(" ");
}
bReader.close();
objRedfile.close();
System.out.println(" ");
System.out.println("********************************");
System.out.println("总行数为:"+Integer.toString(count));
System.out.println("********************************");
}else{
System.out.println("the file cannot be found...");
} }
}
20010510,10000300,MAEKAWA_TEST tok1-ope1,0,DP00050,SOHIN_NAME101,17,28000,476000,5,999999,
20010510,10000300,MAEKAWA_TEST tok1-ope1,0,DP00060,SOHIN_NAME102,9,30000,270000,5,999999,
20010510,10000300,MAEKAWA_TEST tok1-ope1,0,DP10052,603927,0.18,108706,5,999999,
20010510,10000300,MAEKAWA_TEST tok1-ope2,0,DP00050,17,28000,476000,5,890244,
********************************
总行数为:4
********************************