java写文件

  今天在测试数据库语法时,可能需要大量数据,但手头有没有这样的数据,于是想起了之前学过java语言,动手通过程序创建一个数据文件。

  程序不是太复杂,但是也要两三年没碰java了,几乎遗忘的差不多了,动手网上找了些资料:

package com.data;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

public class ProduceData {

    public static void main(String[] args) throws IOException {

        // 获取要写入文件
        File file = new File("D:\\Data\\member_delta.txt");

        // 文件不存在首先创建文件
        if (!file.exists()) {
            file.createNewFile();
        }
        // 以下是两种写入文件的类,FileOutPutStream的方法太单调,还是第二种BufferedWrite方法多些
        FileOutputStream out = new FileOutputStream(file, true);
        BufferedWriter bw = new BufferedWriter(new FileWriter(file, true));
        
        // random 生产随机数
        Random random = new Random();
        
        // 获取当前日前
        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);

        // 循环写入数据
        for (int i = 0; i < 10; i++) {
            
            // 在原有的日期上多加一天
            cal.add(Calendar.DATE, +1);

            Integer o = i;
            
            // 拼接字符串
            StringBuffer sb = new StringBuffer();
            Integer j = random.nextInt(291) + 100;
            Integer m = random.nextInt(291) + 100;
            if (o.toString().indexOf("8") != 0) {
                sb.append("000"
                        + j.toString()
                        + " "
                        + m.toString()
                        + " I "
                        + (new SimpleDateFormat("yyyy-MM-dd")).format(cal
                                .getTime()));
            } else if (o.toString().indexOf("5") != 0) {
                sb.append("000"
                        + j.toString()
                        + " "
                        + m.toString()
                        + " U "
                        + (new SimpleDateFormat("yyyy-MM-dd")).format(cal
                                .getTime()));
            } else {

                sb.append("000"
                        + j.toString()
                        + " "
                        + m.toString()
                        + " D "
                        + (new SimpleDateFormat("yyyy-MM-dd")).format(cal
                                .getTime()));
            }
            // 两种文件类的写入方法
            // BufferedWrite类添加数据是累加的,第二次添加数据会保留第一次添加的数据FileOutPutStream类会覆盖之前写入的数据。
            // out.write(sb.toString().getBytes("UTF-8"));
            bw.write(sb.toString());
            // 文件中添加数据换行
            bw.newLine();

        }
        out.close();
        bw.close();
        System.out.println("write data Ok");
        
    }

}

中间的BufferString ,根据自己的需求改变append什么样的数据格式。

东西很简单,但用起来还是蛮爽的。

 

 

posted @ 2015-06-24 14:13  牛精神  阅读(254)  评论(0编辑  收藏  举报