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();
}
}
}
分享到:
相关推荐
在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...
6. **IO异常处理**:提供了一些更易用的异常类,使得处理IO异常时的代码更简洁。 7. **缓冲区操作**:提供了`BufferedInputStream`和`BufferedOutputStream`的增强版本,提高了读写性能。 8. **路径处理**:提供了...
在实际开发中,当你需要在Web应用中实现文件上传功能时,首先会配置`commons-fileupload-1.2.1.jar`来解析请求,然后利用`commons-io-1.4.jar`处理上传后的文件,比如保存到服务器的指定目录,或者进行一些预处理...
在处理文件上传时,`commons-fileupload`可能会依赖`commons-io`来完成一些底层的文件操作,比如读写文件、复制文件、检查文件是否存在等。`1.3.2`同样表示这个库的一个特定版本,它可能包含了更多的功能和改进。 ...
commons-io-2.11.0.jar是这个项目在版本2.11.0时的jar文件,用于在Java应用程序中引入这些实用功能。 主要功能: 文件和目录操作工具:例如文件复制、移动、删除、查找等。 流处理工具:提供了易于使用的包装器和...
Apache Commons FileUpload和Commons IO两个库是Java中处理文件上传的关键组件,它们为SpringMVC和MyBatis这样的框架提供了强大的支持。本篇文章将深入探讨这两个库以及它们在图片处理中的作用。 首先,`commons-...
Commons IO 是 Apache Software Foundation 开发的一个 Java 库,它的核心组件是 `commons-io...Apache Commons IO 以其强大的功能和良好的兼容性,广泛应用于各种 Java 项目中,大大简化了开发者处理 I/O 任务的工作。
《Java IO流详解与commons-io-1.4.jar库的应用》 在Java编程语言中,IO(Input/Output)流是一组用于数据传输的类,它们允许程序读取和写入数据,无论是从磁盘、网络还是其他输入输出设备。Java的IO流系统是一个...
接着,`commons-io`可以帮助我们处理这些文件,比如将文件内容写入服务器指定的路径,或者进行一些预处理操作,如验证文件类型、大小等。整个过程无需直接处理低级别的IO流,大大简化了代码并提高了可维护性。 在...
在使用`commons-fileupload-1.3.2.jar`处理文件上传时,通常会配合`commons-io-2.5.jar`来完成一些辅助操作,例如读取上传文件的内容、检查文件类型、移动文件到目标位置等。通过这两个库的组合,开发者能够方便地在...
《Apache Commons IO 2.6在Java开发中的应用详解》 Apache Commons IO是Apache软件基金会的一个开源项目,它提供了一系列实用的I/O操作工具,极大地简化了Java开发中与输入/输出相关的任务。其中,`commons-io-2.6....
Apache Commons项目提供了两个非常重要的库,即`commons-fileupload-1.2.2.jar`和`commons-io-2.4.jar`,它们是实现这些功能的关键工具。 `commons-fileupload-1.2.2.jar`是Apache Commons FileUpload的实现,它是...
2. **依赖引入**:在你的项目中添加`commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 的依赖。如果你使用的是Maven,可以在pom.xml文件中添加相应的依赖项。 3. **创建解析器**:在Servlet的doPost方法中,...
`commons-io-1.3.2.jar` 是Apache Commons IO的1.3.2版本,它是Java I/O操作的实用工具类集合,补充了Java标准库中的一些不足。以下是一些重要的IO操作工具: 1. **文件操作**:提供了许多静态方法,用于创建、复制...
总之,Apache Commons IO 2.11.0.jar 是Java开发者的强大工具,它扩展了标准库的功能,简化了文件和流操作,是构建高效、可靠的Java应用程序不可或缺的一部分。通过理解和熟练运用这个库,开发者可以更高效地处理...
标签中提到的"commons-io-2.5"可能指的是上一个稳定版本,这表明"commons-io-2.6"可能包含了一些新特性或改进。开发者通常会根据需求选择适合的版本,新版本通常意味着更好的性能和更多的功能。 总的来说,Apache ...
本教程将深入讲解如何使用Java Servlet、Apache Commons IO库(版本2.4)以及Apache Commons FileUpload库(版本1.3)来实现这一功能。 一、Apache Commons IO与FileUpload库介绍 Apache Commons IO是一个Java库,...
在Struts2中处理文件上传功能时,通常需要依赖两个关键的第三方库:`commons-fileupload`和`commons-io`。这两个jar包在Java文件上传处理中扮演着至关重要的角色。 `commons-fileupload-1.2.1.jar`是Apache Commons...
9. **异常处理**:Apache Commons IO封装了一些常见的I/O异常,如`IOExceptionWrapper`,提供了更友好的错误信息和处理机制。 10. **Maven依赖**:在Maven项目中,可以直接通过添加以下依赖引入Apache Commons IO ...
这两个库常常一起使用,因为`commons-fileupload`在处理文件上传时,可能会依赖`commons-io`来执行一些底层的I/O操作。孤傲苍狼在他们的Demo中使用了这两个库,使得开发者能够方便地实现用户在Web应用中上传文件的...