import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import org.apache.log4j.Logger;
public class TestFile {
private static final Logger log = Logger.getLogger(TestFile.class);
/**
* 创建文件夹、txt文件、及追加写入内容
* @param content 待写入的内容
* @param fn 文件路径
* @param out
*/
public static void write(String content,String fn, BufferedWriter out) {
File file = new File(fn);
try {
if(!file.exists()){
file.getParentFile().mkdirs();
}
file.createNewFile();
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fn, true)));
out.write(content+";"+"\r\n");
out.close();
} catch (IOException e) {
log.error("文件写入失败" + e.getMessage(), e);
}
}
/**
* 拷贝文件
*
* @param resFile 源文件
* @param objFolderFile 目标文件夹
* @throws IOException 异常时抛出
*/
public static void copy(File resFile, File objFolderFile) {
try {
if (!resFile.exists()){//判断是否存在源文件
return;
}
if (!objFolderFile.exists()){//判断是否存在目标目录文件夹
objFolderFile.mkdirs();
}
if (resFile.isFile()) {
File objFile = new File(objFolderFile.getPath() + File.separator + resFile.getName());
// 复制文件到目标地
InputStream ins = new FileInputStream(resFile);
FileOutputStream outs = new FileOutputStream(objFile);
byte[] buffer = new byte[1024 * 512];
int length;
while ((length = ins.read(buffer)) != -1) {
outs.write(buffer, 0, length);
}
ins.close();
outs.flush();
outs.close();
} else {
String objFolder = objFolderFile.getPath() + File.separator + resFile.getName();
File _objFolderFile = new File(objFolder);
_objFolderFile.mkdirs();
for (File sf : resFile.listFiles()) {
copy(sf, new File(objFolder));
}
}
} catch (IOException e) {
log.error("文件拷贝失败" + e.getMessage(), e);
}
}
/**
* 删除文件
* @param file (源文件)
*/
public static void delete(File file) {
if (!file.exists()){
return;
}
if (file.isFile()) {
file.delete();
} else {
for (File f : file.listFiles()) {
delete(f);
}
file.delete();
}
}
/**
* 读取txt文件内容
* @param file 源文件
* @return
*/
public static String read(File file) {
String content="";
if(file.exists()) {
try {
FileInputStream fis = new FileInputStream(file);
byte[] b=new byte[fis.available()];//文件的长度
//fis.skip(5);//跳过前5个字节
fis.read(b);
content = new String(b);
fis.close();
} catch (IOException e) {
log.error("文件读取失败" + e.getMessage(), e);
}
}
return content;
}
public static void main(String[] args) {
//创建及写入文件
String content = "2018年12月18日 10:10:11";
String fn = "D:/mytxt.txt";
BufferedWriter out =null;
write(content,fn,out);
//读取txt文件内容
File readfile = new File(fn);
String str = read(readfile);
System.out.println(str);
//复制文件
File resfile = new File(fn);
String objFolderFile ="D:/mytest";
File objfolderfile = new File(objFolderFile);
copy(resfile, objfolderfile);
//删除文件
File deletefile = new File(fn);
delete(deletefile);
}
}
文件创建、写入、读取、复制、删除
最新推荐文章于 2022-12-12 20:15:02 发布