- Apache为大家提供了很多有用的API,如StringUtils、FileUtis就是其中常用的之一
- FileUtils主要用于操作文件
- 下面API所在包为:org.apache.commons.io
write(File file, CharSequence data)
- 将指定的数据(data)写入到指定的文件(file)中
- file必须是文件,是目录时抛异常
- file整个路径可以不存在,即使父目录不再,不再时也会自动全部新建
- 这种方式写入时,如果文件已经存在了,则先删除之前的内容,然后在重新写入,即完全覆盖,而不是内容追加
public static void main(String[] args) {
/** 当E盘下xfmovie1不存在时,自动新建*/
String FilePath = "E:\\xfmovie1\\a.txt";
/** 通常数据采用这种压缩形式也是很好的* */
String context = "{\"name\":\"BeJson帅\",\"url\":\"http://www.bejson.com\"page\":88,\"isNonProfit\":true}";
try {
FileUtils.write(new File(FilePath), context);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
/** 当E盘下xfmovie1不存在时,自动新建*/
String FilePath = "E:\\xfmovie1\\a.txt";
/** 如果需要换行,请使用"\r\n"组合进行内容换行
* 下面就是先换行,然后tab键空格,这样json数据看起来就会更直观了
* */
String context = "{\r\n\t\"name\":\"BeJson\",\r\n\t\"url\":\"http://www.bejson.com\"," +
"\r\n\t\"page\":88,\"isNonProfit\":true\r\n}";
try {
FileUtils.write(new File(FilePath), context);
} catch (IOException e) {
e.printStackTrace();
}
}
write(File file, CharSequence data, boolean append)
- 将指定的数据(data)写入到指定的文件(file)中
- file必须是文件,是目录时抛异常
- file整个路径可以不存在,即使父目录不再,不再时也会自动全部新建
- append则表示是否内容追加,true时为内容追加,false时与上面的write(File file, CharSequence data)一样,因为它默认就是false
public static void main(String[] args) {
/** 当E盘下xfmovie1不存在时,自动新建*/
String FilePath = "E:\\xfmovie1\\a.txt";
/** 通常数据采用这种压缩形式也是很好的
* 内容结尾采用了换行*/
String context = "{\"name\":\"BeJson帅\",\"url\":\"http://www.bejson.com\"page\":88,\"isNonProfit\":true}\r\n";
try {
/**内容追加,而不再是覆盖*/
FileUtils.write(new File(FilePath), context,true);
} catch (IOException e) {
e.printStackTrace();
}
}
write(File file, CharSequence data, Charset encoding)
- 将指定的数据(data)写入到指定的文件(file)中
- file必须是文件,是目录时抛异常
- file整个路径可以不存在,即使父目录不再,不再时也会自动全部新建
- 这种方式写入时,如果文件已经存在了,则先删除之前的内容,然后在重新写入,即完全覆盖,而不是内容追加
- encoding可以指定文件内容编码,这在网络通信时防止中文乱码非常有用
/**
* 在指定目录下生成文件,并写入内容
*
* @param dir:指定的目录
* @param fileName:待生成的文件,包含名称与格式,如:23.docx;缺省时,采用
* @param context:文件待写入的内容
* @return 写入成功时,返回true,否则返回false
*/
public static final boolean createFile(String dir, String fileName, String context) {
boolean result = false;
try {
if (StringUtils.isBlank(fileName)){
String dateStr = DateFormatUtils.format(new Date(), "yyyy_MM_dd_HH_mm_ss");
fileName = "act_"+dateStr+".json";
}
if (StringUtils.isNotBlank(dir) && StringUtils.isNotBlank(context)) {
File file = new File(new File(dir), fileName);
/**为了为防止context在远程客户端使用HttpClient传输时乱码,对方采用UTF-8发送,这里写入时也采用UTF-8*/
FileUtils.write(file, context, Charset.forName("UTF-8"));
result = true;
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}