我在record.txt里读取记录,读取出来的结果是第二条记录会读两次,我想要的是逐条记录读完就可以了,
希望高人指点!谢谢!!
record.txt
002:03489182222:李三路:市场部助理:4:中级:02-02-2007:
004:03489541234:于老:管理员:0:高级:14-02-2008:部分代码是这样的: while ((reinfo = io.readFromUsers("record.txt", "r")) != null) {
reArray = reinfo.split(":");
num = reArray[0];
name = reArray[2];
System.out.println(num+“:”+name);
}
IO读取部分:
long indexcount = 0;
public String readFromUsers(String fileName,String mode){
try{
RandomAccessFile readUsers =new RandomAccessFile(fileName,mode); readUsers.seek(indexcount);
str=readUsers.readLine();
indexcount=readUsers.getFilePointer(); }catch (IOException e) {
e.printStackTrace();
}finally{
try{
if(readUsers!=null)
readUsers.close();
}catch (IOException e) {
e.printStackTrace();
}
}
return str;
}
希望高人指点!谢谢!!
record.txt
002:03489182222:李三路:市场部助理:4:中级:02-02-2007:
004:03489541234:于老:管理员:0:高级:14-02-2008:部分代码是这样的: while ((reinfo = io.readFromUsers("record.txt", "r")) != null) {
reArray = reinfo.split(":");
num = reArray[0];
name = reArray[2];
System.out.println(num+“:”+name);
}
IO读取部分:
long indexcount = 0;
public String readFromUsers(String fileName,String mode){
try{
RandomAccessFile readUsers =new RandomAccessFile(fileName,mode); readUsers.seek(indexcount);
str=readUsers.readLine();
indexcount=readUsers.getFilePointer(); }catch (IOException e) {
e.printStackTrace();
}finally{
try{
if(readUsers!=null)
readUsers.close();
}catch (IOException e) {
e.printStackTrace();
}
}
return str;
}
package dummy;import java.io.IOException;
import java.io.RandomAccessFile;public class Dummy2 { static long indexcount = 0; /**
* @param args
*/
public static void main(String[] args) {
String reinfo; while ((reinfo = readFromUsers("d:\\record.txt", "r")) != null) {
System.out.println(reinfo);
}
} public static String readFromUsers(String fileName, String mode) {
RandomAccessFile readUsers = null;
String str = null;
try {
readUsers = new RandomAccessFile(fileName, mode); readUsers.seek(indexcount);
str = readUsers.readLine();
indexcount = readUsers.getFilePointer(); } catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (readUsers != null)
readUsers.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return str;
}}
String[] lines=data.split("\n");
for(String reinfo: lines)
{
reArray = reinfo.split(":");
num = reArray[0];
name = reArray[2];
System.out.println(num+“:”+name);
}
这个方法是按行读取的,应该不用data.split("\n")吧?