×

导出

记一次用java流输出格式化数据的txt文件

我的笔记 我的笔记 发表于2019-08-15 10:17:29 浏览3062 评论0

抢沙发发表评论

我直接就把main犯法贴出来了,简单来说就是把list导出txt文件,这里记一下,以备不时之需,这是我对象他们公司有个需求,我就写了一个例子,但是最后还导致我对象被领导批评说代码不规范

public static void main(String[] args) {
		System.out.println("开始导出。。。");
		List<Persion> persions=new ArrayList<Persion>();
		Persion persion;
		for(int i=0;i<10;i++){
			persion=new Persion(i+"","名称"+i,"性别"+i,"手机"+i);
			if(i==1){
				persion.setUserName("撒啊啊啊啊啊啊啊啊啊啊啊啊的");
			}
			persions.add(persion);
		}
		//先读取保存路径
		String savePath=Test.class.getClass().getResource("/").getPath()+"upload/corebatch/";
		System.out.println(savePath);
		File saveDir=new File(savePath);
		if(!saveDir.exists()){
			saveDir.mkdirs();
		}
		//创建今天的文件名称.如果是jdk8推荐使用DateTimeFormatter
		String fileName="CreditCheck"+new SimpleDateFormat("yyyymmdd").format(new Date())+".txt";
		//判断今天的文件是否已经存在,如果存在,就把源文件改名
		File saveFile=new File(savePath+fileName);
		if(saveFile.exists()){
			//将原文件更改为f:\a\b.xlsx,其中路径是必要的。注意  
			saveFile.renameTo(new File(savePath+fileName+"backup"+new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())));
			System.out.println(savePath+fileName+"backup"+new Date().getMinutes());
		}
		//接下来导出txt并且以|分割
		Writer out;
        try {
            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(savePath+fileName,true), "utf-8"), 10240);
            out.write("ID\t|\t姓名\t|\t性别\t|\t手机号\r\n");
            for (int i = 0; i < persions.size(); i++) {
                out.write(
                		persions.get(i).getId()+"\t|\t"+
                		persions.get(i).getUserName()+"\t|\t"+
                		persions.get(i).getSex()+"\t|\t"+
                		persions.get(i).getPhone());
                out.write("\r\n");
            }
            out.flush();
            out.close();
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
}


我的笔记博客版权我的笔记博客版权