commons-io2的一些应用

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import org.apache.commons.io.FileSystemUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.LineIterator;

public class TestIoDemo {

private void phasmethod(){
//拷贝文件
try {
File src = new File("test.dat");
File dest = new File("test.dat.bak");

FileUtils.copyFile(src, dest);
} catch(IOException ioe) {
System.out.println("Problem copying file.");
}

//拷贝文件到指定目录
try {
File src = new File("test.dat");
File dir = new File("./temp");

FileUtils.copyFileToDirectory(src, dir);
} catch(IOException ioe) {
System.out.println("Problem copying file to dir.");
}

//往文件里写一个字符串
try {
String string = "Blah blah blah";
File dest = new File("test.tmp");

FileUtils.writeStringToFile(dest, string, "ISO-8859-1");
} catch( IOException ioe ) {
System.out.println("Error writing out a String.");
}

//拷贝数据
try {
Writer writer = new FileWriter("test.dat");
InputStream inputStream = TestIoDemo.class.getClass().getResourceAsStream("/io/web.xml");
IOUtils.copy(inputStream, writer);
writer.close();
inputStream.close();
} catch (IOException e) {
System.out.println("Error copying data");
}

//拷贝数据
try {
File src = new File("test.txt");
OutputStream output = new FileOutputStream(src);
InputStream inputStream = TestIoDemo.class.getClass().getResourceAsStream("/io/web.xml");
IOUtils.copy(inputStream, output);
// writer.close();
inputStream.close();
output.close();
} catch (IOException e) {
System.out.println("Error copying data");
}

//把Collection或List中的数据按格式写入OutputStream输出流中
try{
File src = new File("test.txt");
OutputStream output = new FileOutputStream(src);
List targetList = new ArrayList();
targetList.add("111");
targetList.add("中文");
targetList.add("~!@#$%^&*(){}<>?\/");
IOUtils.writeLines(targetList, IOUtils.LINE_SEPARATOR, output, "GB18030");
} catch (IOException e) {
System.out.println("Error copying data");
}

//把一个文件中的部分内容修改后存入另一个文件中
try{
OutputStream output = null;
InputStream inputStream = null;
File targetfile = new File("目标文件.txt");
output = new FileOutputStream(targetfile); //创建一个新的空文件
inputStream = new FileInputStream("源文件.txt"); //读源文件
List srcfilelines = FileUtils.readLines(new File(源文件.txt), "GB18030");
List targetList = new ArrayList();
for(Object linestr : srcfilelines){
if(linestr.toString().length() > 7){
if("password".equals(linestr.toString().substring(0, 8))){
System.out.println(linestr.toString().substring(9).trim());
targetList.add("password=" + ConvertCode.getBase64Pwd(linestr.toString().substring(9).trim()));
}else{
targetList.add(linestr.toString());
}
}else{
targetList.add(linestr.toString());
}
}

IOUtils.writeLines(targetList, IOUtils.LINE_SEPARATOR, output, "GB18030");
IOUtils.closeQuietly(outputStream);
IOUtils.closeQuietly(inputStream);

outputStream.flush(); //及时刷新文件流
inputStream.close();
output.close();
} catch (IOException e) {
System.out.println("Error copying data");
} finally {
//关闭流
if (inputStream != null) {
try {
IOUtils.closeQuietly(inputStream);
inputStream.close();
} catch (IOException exf) {
inputStream = null;
exf.printStackTrace();
}
}
if (output != null) {
try {
IOUtils.closeQuietly(outputStream);
outputStream.flush(); //及时刷新文件流
output.close();
} catch (IOException exf) {
output = null;
exf.printStackTrace();
}
}
}

//对一个文件中的部分内容进行修改后保存
try{
InputStream inputStream = null;
OutputStream outputStream = null;
inputStream = new FileInputStream("C:\myshihuan.txt");
List filelines = FileUtils.readLines(new
File("C:\myshihuan.txt"), "UTF-8");
List list = new ArrayList();
for(Object linestr : filelines){
if(linestr.toString().equal("shihuan")){
list.add("xiugaidata");
}else{
list.add(linestr.toString());
}
}

File file = new File("C:\myshihuan.txt");
outputStream = new FileOutputStream(file);
IOUtils.writeLines(list, IOUtils.LINE_SEPARATOR, outputStream, "UTF-8");
IOUtils.closeQuietly(outputStream);
IOUtils.closeQuietly(inputStream);

outputStream.flush(); //及时刷新文件流
outputStream.close();
inputStream.close();
}catch(IOException ex){
logger.error(ex.getMessage());
ex.printStackTrace();
}finally {
//关闭流
if (inputStream != null) {
try {
IOUtils.closeQuietly(inputStream);
inputStream.close();
} catch (IOException exf) {
inputStream = null;
logger.error(exf.getMessage());
exf.printStackTrace();
}
}
if (outputStream != null) {
try {
IOUtils.closeQuietly(outputStream);
outputStream.flush(); //及时刷新文件流
outputStream.close();
} catch (IOException exf) {
outputStream = null;
logger.error(exf.getMessage());
exf.printStackTrace();
}
}
}
}

public void printFileXg(){
String filepn = "D:\shihuan\myboby\mydaling.txt";
//mydaling
System.out.println(FilenameUtils.getBaseName(filepn));
//shihuan\myboby\
System.out.println(FilenameUtils.getPath(filepn));
//D:\
System.out.println(FilenameUtils.getPrefix(filepn));
//shihuan\myboby
System.out.println(FilenameUtils.getPathNoEndSeparator(filepn));
//D:\shihuan\myboby
System.out.println(FilenameUtils.getFullPathNoEndSeparator(filepn));
//D:\shihuan\myboby\
System.out.println(FilenameUtils.getFullPath(filepn));
//txt
System.out.println(FilenameUtils.getExtension(filepn));

String filecurdir = filepn.substring(0, filepn.lastIndexOf(SystemUtils.FILE_SEPARATOR)); //上传文件路径
String filename = filepn.split(SystemUtils.FILE_SEPARATOR + SystemUtils.FILE_SEPARATOR)[filepn.split(SystemUtils.FILE_SEPARATOR + SystemUtils.FILE_SEPARATOR).length-1]; //上传文件名字
String filenameprefix = filename.substring(0, filename.lastIndexOf(".")); //文件名前缀
String filenamesuffix = filename.substring(filename.lastIndexOf("."), filename.length()); //文件名后缀
}

/**
* @param args
*/
public static void main(String[] args) {
//直接将IO流转成字符串
InputStream in = null;
try {
in = new URL( "http://jakarta.apache.org" ).openStream();
try {
System.out.println(IOUtils.toString(in));
} finally {
IOUtils.closeQuietly(in);
}
//读取文本文件的所有行
File file = new File("/commons/io/project.properties");
List lines = FileUtils.readLines(file, "UTF-8");
//路径处理
String filename = "C:/commons/io/../lang/project.xml";
String normalized = FilenameUtils.normalize(filename);
// result is "C:/commons/lang/project.xml"
//获取目录空间
long freeSpace = FileSystemUtils.freeSpace("C:/");
//打印文件的所有行
LineIterator it = FileUtils.lineIterator(file, "UTF-8");
try {
while (it.hasNext()) {
String line = it.nextLine();
/// do something with line
}
} finally {
LineIterator.closeQuietly(it);
}

//文件删除
File file1 = new File(("io/project.properties"));
String display = FileUtils.byteCountToDisplaySize(file1.length());
System.out.println("project.xml is " + display);
FileUtils.forceDelete(file1);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值