package com.vcredit.ddcash.batch.util;

import com.vcredit.ddcash.batch.autoAdvance.AutoAdvanceTask;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;

import java.io.*;

/**
* 操作文件工具类
* Created by xutao on 2016/11/9 0009.
*/
public class FileIOUtils {
private static final Logger LOGGER = Logger.getLogger(FileIOUtils.class);

/**
* 保存内容到指定的路径的文件中,根据分隔符换行
*
* @param targetFolder 指定的文件路径
* @param fileName 指定的文件名
* @param saveContent 待保存的内容
*/
public static void saveStringArray2File(File targetFolder, String fileName, String saveContent, String delimiter) {
if (targetFolder == null
|| StringUtils.isBlank(fileName)
|| StringUtils.isEmpty(saveContent)
|| StringUtils.isBlank(delimiter)) {
throw new RuntimeException("请求参数不正确->不能为空");
}

BufferedWriter writer = null;
try {
if (!targetFolder.exists()) {
targetFolder.mkdirs();
}
File targetFile = new File(targetFolder, fileName);
if (!targetFile.exists()) {
targetFile.createNewFile();
}
LOGGER.info("开始写入到文件,参数->路径名->" + targetFolder.getPath() + "->文件名->" + fileName + "->保存内容->" + saveContent + "->分隔符->" + delimiter);
writer = new BufferedWriter(new FileWriter(new File(targetFolder, fileName), true));
String[] contentArr = saveContent.split(delimiter);
for (String str : contentArr) {
writer.write(str, 0, str.length());
writer.newLine();
}
writer.flush();
} catch (Exception e) {
LOGGER.error("写入字符串到文件失败", e);
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
LOGGER.error("关闭IO流失败");
}
}
}
}

}

FileIOUtils.java的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

随机推荐

  1. JMeter正则表达式-学习(3)

    同时关联多个值的方法: { : ", : "results": : [ : : { : : : "total_earnings":"&quo ...

  2. ASP.Net MVC开发基础学习笔记(1):走向MVC模式

    一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...

  3. programing Python --Sys module

    Recall that every python module has a built_in __name__ variable that python sets to the __main__ st ...

  4. js-Ajax与Comet

    Ajax与Comet: 1.Ajax技术的核心是XHR(XMLHTTPRequest对象) 创建xhr对象: function createXHR(){ if(typeof XMLHttpReques ...

  5. .Net Mvc3框架调用服务端控件解决方案

      /*BY:Wangyexin date:2011年4月30日 20:17:38*/ /*说明:.net mvc3框架,View层调用服务端控件,输出到.cshtml文件中显示*/ 1.先说说.ne ...

  6. SlidesJS的使用

    项目中对slideshow要求要有触屏滑动换图功能,就想到了SlidesJS这个Jquery插件 例排,先把静态html写好 <div id="cm_slides"> ...

  7. 【转载】Android端手机测试体系

    1.冒烟测试 跟web端 的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃.这款原生sdk自带的monkey可以当做 我们的测试工具.就跟我之前博 ...

  8. Codeforces 611C New Year and Domino(二维前缀和)

    题目大概说给一个n*m个格子,格子'.'表示可以放东西,多次询问矩形区域(x1,y1)-(x2,y2)有几种放一张1*2的骨牌的方案数. 分别考虑横着竖着放,预处理出二维的前缀和,即sum[x][y] ...

  9. SQL Prompt激活

    SQL脚本越写越多,总是觉得编写效率太过于低下,这和打字速度无关.在我个人编写SQL脚本时,至少会把SQL的格式排列成易于阅读的,因为其他人会阅读到你的SQL,无论是在程序中或是脚本文件中,良好的排版 ...

  10. sql over的作用及用法

    over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用.其参数:over(partition by columnname1 order by c ...