FileUtils

commons-io commons-io 2.4

【写文件】
public static void main(String[] args) throws IOException {
// 1、 向一个文件写入一段文字
FileUtils.write(new File(“D:/a/1.txt”), “文件内容”, “UTF-8”, true);

// 2、以追加的方式写入
FileUtils.writeStringToFile(new File("D:/a/1.txt"), "author:apple", "UTF-8", true);

//3、写入多行
List<String> list= new ArrayList<String>();
list.add("第一行");
list.add("第二行");
FileUtils.writeLines(new File("D:/a/1.txt"), list, true);

}

【读文件】
public static void main(String[] args) throws IOException {
//读文件
System.out.println(FileUtils.readFileToString(new File(“D:/a/1.txt”), “UTF-8”));

//返回一个list 
System.out.println(FileUtils.readLines(new File("D:/a/1.txt"), "UTF-8")); 

}

【删除文件/文件夹】
public static void main(String[] args) throws IOException {
// 删除文件夹
FileUtils.deleteDirectory(new File(“D:/a”));

// 文件夹不是空仍然可以被删除,永远不会抛出异常  
FileUtils.deleteQuietly(new File("D:/a")); 

}

【复制文件】
public static void main(String[] args) throws IOException {
//结果是a和a1在同一目录
FileUtils.copyDirectory(new File(“D:/a”), new File(“D:/a1”));
//结果是将a拷贝到a2下
FileUtils.copyDirectoryToDirectory(new File(“D:/a”), new File(“D:/a2”));

//拷贝文件  
FileUtils.copyFile(new File("d:/1.xml"), new File("d:/1.xml.bak"));  
//拷贝文件到目录中  
FileUtils.copyFileToDirectory(new File("d:/1.xml"), new File("d:/a"));  
//拷贝url到文件  
FileUtils.copyURLToFile(new URL("http://www.a.com/1.xml"), new File("d:/1.xml"));  

}
【移动文件】
public static void main(String[] args) throws IOException {
//移动文件 或 文件夹
//static void moveDirectory(File srcDir, File destDir)
FileUtils.moveDirectory(new File(“D:/a1”), new File(“D:/a2”)); //注意这里 第二个参数文件不存在会引发异常

//static void moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)   
FileUtils.moveDirectoryToDirectory(new File("D:/a2"), new File("D:/a3"), true);  

/* 上面两个方法的不同是: 
 * moveDirectory:D:/a2里的内容是D:/a1的内容。 
 * moveDirectoryToDirectory:D:/a2文件夹移动到到D:/a3里 
 *  
 * 下面的3个都比较简单没提供示例,只提供了api 
 * 其中moveToDirectory和其他的区别是 它能自动识别操作文件还是文件夹 
 */  
 
static void moveFileToDirectory(srcFile, destDir, createDestDir)  
static void moveFile(File srcFile, File destFile)   
static void moveToDirectory(File src, File destDir, boolean createDestDir)  

}
【实现快速下载文件】
public static void main(String[] args) throws IOException {
//下载方式1
URL url = new URL(“http://www.baidu.com/img/baidu_logo.gif”);
File file = new File("/Users/jjs/Desktop/baidu1.gif");
FileUtils.copyURLToFile(url, file);

//下载方式2
InputStream in = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte[] gif = IOUtils.toByteArray(in);
FileUtils.writeByteArrayToFile(new File("D:/baidu2.gif"), gif);
IOUtils.closeQuietly(in);

//下载方式3
InputStream in3 = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte[] gif3 = IOUtils.toByteArray(in3);
IOUtils.write(gif3, new FileOutputStream(new File("D:/baidu3.gif")));
IOUtils.closeQuietly(in3);

}

【实现快速复制】
public static void main(String[] args) throws IOException {

//复制方式1
FileUtils.copyFile(new File(D:/abc.txt"), new File(D:/abc_bak.txt"));

//复制方式2
Writer write = new FileWriter("D:/abc_bak.txt");
InputStream ins = new FileInputStream(new File("D:/abc.txt"));
IOUtils.copy(ins, write);
write.close();
IOUtils.closeQuietly(ins);

//将内容同时写入两个不同的文件,就当是一种另类的复制吧
File test1 = new File("D:/split1.txt");
File test2 = new File("D:p/split2.txt");
OutputStream outStream = null;
try {
	FileOutputStream fos1 = new FileOutputStream(test1);
	FileOutputStream fos2 = new FileOutputStream(test2);
	//包含不同的文本  
	outStream = new TeeOutputStream(fos1, fos2);
	outStream.write("One Two Three, Test".getBytes());
	outStream.flush();
} catch (IOException ioe) {
	System.out.println("Error writing to split output stream");
} finally {
	IOUtils.closeQuietly(outStream);
}

}

获取网页的内容】
public static void main(String[] args) throws IOException {
URL webUrl = new URL(“https://wenku.baidu.com/view/7999faba960590c69ec376be.html?from=search”);
InputStream ins = webUrl.openStream();
String contents = IOUtils.toString(ins, “gb2312”);
System.out.println("contents: " + contents);
}

上一篇:PTA 乙级1072 开学寄语 (20 分)


下一篇:loj#2333 「JOI 2017 Final」准高速电车