最新消息:历时半年,永住昨天下来了

关于带分隔符文件的读取方法

在系统中,经常有批量输入和输出的操作。比如以CVS输入一个文件到数据库,输出一个文件到数据库。对于这种处理,以前总喜欢用Java的字符串分割的方法来做。今天看了《Core Java2》,发现还可以用Java自带的分隔符读入方法来实现。如下文本:

Harry Hacker,35500,1989,10,1
Carl Crecker,75000,1987,12,15
Tony Tester,38000,1990,3,15

对于这种文件,可以使用StringTokenizer来读入。代码如下:

Java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;

public class StringTokenizerTest {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new FileReader("E:Test.txt"));
		while(true) {
            String data = in.readLine();
            if (data == null || data.length() == 0) break;
            System.out.println(readData(data));
        }
    }
    private static Employee readData(String in) {
        Employee em = new Employee();
        StringTokenizer t = new StringTokenizer(in, ",");
        em.name = t.nextToken();
        em.salary = Long.parseLong(t.nextToken());
        em.hireDay = new GregorianCalendar(Integer.parseInt(t.nextToken()), Integer.parseInt(t.nextToken()) - 1,
                Integer.parseInt(t.nextToken())).getTime();
        return em;
    }
}

class Employee {
    public String name;
    public long salary;
    public Date hireDay;   public String toString() {
        return name + "," + salary + "," + hireDay;
    }
}

转载请注明:宇托的狗窝 » 关于带分隔符文件的读取方法

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址