【JAVA】使用java生成文件并输出

19 篇文章 0 订阅
17 篇文章 0 订阅

感觉这篇博客记录了我重复造轮子的过程,这显而易见是一个很多人实现过的功能呢。写这段代码主要是为了在文件中批量生成命令文件,也就是个文本生成器,用机器生成命令的好处很明显——人绝不可能手打1000多行代码,哪怕是复制黏贴主要部分,并且对一些参数进行修改。但是对机器来说循环个1000次,无论是怎么样的老爷机都可以轻松做到(还记得我初学变成的第一个作业就是循环输出1到1000,但是用的是学校公共机房最差的机子,但是依然可以很欢快的跑起来)。

其实作为一个程序员,原本是应该尽量避免重复造轮子这种事情的(显然我们可以找到各种生成文件的工具),然而鉴于任务的紧急性和成本之低(或者说找一个好用的工具成本远大于自己重新写一个),我最后决定用十几分钟的实际来写一个工具完成我要做的事情(好处是可以自己调试和简化一些没必要的逻辑)。

实际上我只要对几个数据进行组合拼接就能得到我想要的数据,而主要就是使用File类进行操作。因为实在太简单了,还是直接用代码说话。

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Arrays;
import java.util.List;

public class FileTest {
    public static void main(String[] args) {
        File file = new File("/Users/tbtx/work/schedule.txt");
        try {
            if(!file.exists()) {
                file.createNewFile();
            } else {
                file.delete();
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);

            List<String> actions = Arrays.asList("riding", "running", "swimming");
            List<String> userNames = Arrays.asList("lily", "tom", "bob");
            List<String> times = Arrays.asList("2018-2-2", "2018-3-3");

            for(int i= 0; i<1000; i++) {
                for(String username: userNames) {
                    for(String action: actions) {
                        for(String time: times) {
                            String request = username+" is "+action+" on "+time+"\r\n";
                            bw.write(request);
                        }
                    }
                }
            }
            bw.flush();
            bw.close();
            fw.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        System.out.println("Write is over");
    }
}

这是最最简单的实现方式:先确定文件的路径,然后判断是否存在文件已有则删除新建,然后遍历所有参数拼接语句(如需要换行则加"\r\n"), 最后输出到我们定义好的文件里。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值