- 浏览: 1589387 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (289)
- java 语法基础 (51)
- spring (8)
- mvc struct /Ant --build.xml (8)
- SOA (0)
- oracle 9i/10g (23)
- sql server 2000-2005 (3)
- 数据库基础知识 (6)
- 设计模式与软件架构 (10)
- Hibernate 持久化 (9)
- J2SE/J2EE/J2ME/AJAX 技术 (8)
- JSF 技术 (3)
- JAVA 图形化 (0)
- JMS (40)
- Eclipse 3.2 IDE 开发技巧 (13)
- 项目处理方法集合 (2)
- html/jsp/javascript (2)
- Unix/Linux (9)
- j2me/ARM/windriver/嵌入式 (4)
- 电信科学 (8)
- jsp (1)
- c/c++ (1)
- LZW压缩算法(java) (2)
- Android (77)
- 版本管理git/svn (2)
最新评论
-
huihai:
有demo吗?
NamingStrategy实现动态表名映射 -
cangbaotu:
推荐给大家一些有用的爬虫源码:https://github.c ...
网络爬虫(源代码参考) -
tuspark:
除了.classpath文件以外,.project文件也应该了 ...
Eclipse .classpath文件浅谈 -
tuspark:
造成eclipse自动关闭的原因有很多,这里有很多介绍:ecl ...
eclipse 自动关闭 解决方案 -
DEMONU:
网上都是这些,这种文章。。。
ActiveMQ中的消息持久性
007-07-18
妙用Commons良药<一>
关键字: Commons IO基础
妙用commons良药<一>
这一篇文章主要是讲Commons IO的一些内容.
Commons IO提供了org.apache.commons.io.CopyUtils类来将某个InputStream,Reader,byte[]数据或字符串的内容拷贝到OutputStream或Writer.
Java代码 复制代码
1. Writer writer = new FileWriter( "test.dat" );
2. InputStream inputStream =
3. getClass( ).getResourceAsStream("./test.resource");
4. CopyUtils.copy( inputStream, writer );
5. writer.close( );
6. inputStream.close( );
Writer writer = new FileWriter( "test.dat" );
InputStream inputStream =
getClass( ).getResourceAsStream("./test.resource");
CopyUtils.copy( inputStream, writer );
writer.close( );
inputStream.close( );
如果需要把信息从Reader或InputStream拷贝到字符串中,请使用IOUtils.toString()方法.
Java代码 复制代码
1. InputStream inStream = url.openStream( );
2. String contents = IOUtils.toString( inStream );
InputStream inStream = url.openStream( );
String contents = IOUtils.toString( inStream );
通过org.apache.commons.io.IOUtils,你可以很好地关闭某个InputStream,OutputStream,Reader或Writer,而不必担心null或IOException.
Java代码 复制代码
1. try {
2. File file = new File( "test.dat" );
3. reader = new FileReader( file );
4. result = CopyUtils.toString( reader );
5. } catch( IOException ioe ) {
6. System.out.println( "Unable to copy file test.dat to a String." );
7. } finally {
8. IOUtils.closeQuietly( reader );
9. }
try {
File file = new File( "test.dat" );
reader = new FileReader( file );
result = CopyUtils.toString( reader );
} catch( IOException ioe ) {
System.out.println( "Unable to copy file test.dat to a String." );
} finally {
IOUtils.closeQuietly( reader );
}
使用FileUtils.byteCountToDisplaySize()生成一个字符串,该字符串含有有一个近似的比较好理解的文件的相对大小的值.
Java代码 复制代码
1. File file = new File("project.xml");
2. long bytes = file.length( );
3. String display = FileUtils.byteCountToDisplaySize( bytes );
File file = new File("project.xml");
long bytes = file.length( );
String display = FileUtils.byteCountToDisplaySize( bytes );
如果需要将一个文件拷贝为另一个文件,或者需要将某个文件拷贝到某一个目录中,可以使用如下的代码:
拷贝为另一个文件:
Java代码 复制代码
1. File src = new File( "test.dat" );
2. file dest = new File( "test.dat.bak" );
3. FileUtils.copyFile( src, dest );
File src = new File( "test.dat" );
file dest = new File( "test.dat.bak" );
FileUtils.copyFile( src, dest );
拷贝到某一个目录:
Java代码 复制代码
1. File src = new File( "test.dat" );
2. File dir = new File( "./temp" );
3. FileUtils.copyFileToDirectory( src, dir );
File src = new File( "test.dat" );
File dir = new File( "./temp" );
FileUtils.copyFileToDirectory( src, dir );
使用Commons IO,你也可以很方便把字符串的内容写入文件中去,具体的过程不用怎么理会:
Java代码 复制代码
1. String string = "Blah blah blah";
2. File dest = new File( "test.tmp" );
3. FileUtils.writeStringToFile( dest, string);
String string = "Blah blah blah";
File dest = new File( "test.tmp" );
FileUtils.writeStringToFile( dest, string);
当然,有另外的一个功能,可以将URL的内容存入文件中去:
Java代码 复制代码
1. URL src = new URL( "http://www.nytimes.com" );
2. File dest = new File( "times.html" );
3. FileUtils.copyURLToFile( src, dest );
URL src = new URL( "http://www.nytimes.com" );
File dest = new File( "times.html" );
FileUtils.copyURLToFile( src, dest );
如果你需要删除一个目录下的所有内容(包括其目录),可以这样做:
Java代码 复制代码
1. File dir = new File( "temp" );
2. FileUtils.deleteDirectory( dir );
File dir = new File( "temp" );
FileUtils.deleteDirectory( dir );
如果只想清空目录下所有内容,并不删除该目录,可以这样写:FileUtils.cleanDirectory( dir );
很简单地,可以得到一个目录的大小:
Java代码 复制代码
1. File dir = new File( "temp" );
2. long dirSize = FileUtils.sizeOfDirectory( );
File dir = new File( "temp" );
long dirSize = FileUtils.sizeOfDirectory( );
如果你想得到某个目录下所有以.txt结尾的文件,可以如下这样做:
Java代码 复制代码
1. import java.io.FilenameFilter;
2. import org.apache.commons.io.filefilter.SuffixFileFilter;
3. import org.apache.commons.lang.ArrayUtils;
4.
5. File rootDir = new File(".");
6. FilenameFilter fileFilter = new SuffixFileFilter(".txt");
7. String[] txtFiles = rootDir.list( fileFilter );
8. System.out.println( ArrayUtils.toString( txtFiles ) );
import java.io.FilenameFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.apache.commons.lang.ArrayUtils;
File rootDir = new File(".");
FilenameFilter fileFilter = new SuffixFileFilter(".txt");
String[] txtFiles = rootDir.list( fileFilter );
System.out.println( ArrayUtils.toString( txtFiles ) );
举另一个例子,怎样列出目录中以.htm和.html结尾的文件
Java代码 复制代码
1. import org.apache.commons.io.filefilter.AndFileFilter;
2. import org.apache.commons.io.filefilter.DirectoryFileFilter;
3. import org.apache.commons.io.filefilter.IOFileFilter;
4. import org.apache.commons.io.filefilter.NotFileFilter;
5. import org.apache.commons.io.filefilter.OrFileFilter;
6. import org.apache.commons.io.filefilter.SuffixFileFilter;
7. import org.apache.commons.lang.ArrayUtils;
8.
9. IOFileFilter htmlFilter =
10. new OrFileFilter( new SuffixFileFilter("htm"),new SuffixFileFilter("html") ); //复合两个SuffixFileFilter
11. IOFileFilter notDirectory = new NotFileFilter( DirectoryFileFilter.INSTANCE ); //拒绝选择目录
12. FilenameFilter fileFilter = new AndFileFilter( htmlFilter, notDirectory );
13. String[] htmlFiles = rootDir.list(fileFilter);
14. System.out.println( ArrayUtils.toString( htmlFiles ));
import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.NotFileFilter;
import org.apache.commons.io.filefilter.OrFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.apache.commons.lang.ArrayUtils;
IOFileFilter htmlFilter =
new OrFileFilter( new SuffixFileFilter("htm"),new SuffixFileFilter("html") ); //复合两个SuffixFileFilter
IOFileFilter notDirectory = new NotFileFilter( DirectoryFileFilter.INSTANCE ); //拒绝选择目录
FilenameFilter fileFilter = new AndFileFilter( htmlFilter, notDirectory );
String[] htmlFiles = rootDir.list(fileFilter);
System.out.println( ArrayUtils.toString( htmlFiles ));
注:文中代码来之<<Jakarta Commons Cookbook>>一书第十章
文章待续,会写一些关于commons的笔录下来
妙用Commons良药<一>
关键字: Commons IO基础
妙用commons良药<一>
这一篇文章主要是讲Commons IO的一些内容.
Commons IO提供了org.apache.commons.io.CopyUtils类来将某个InputStream,Reader,byte[]数据或字符串的内容拷贝到OutputStream或Writer.
Java代码 复制代码
1. Writer writer = new FileWriter( "test.dat" );
2. InputStream inputStream =
3. getClass( ).getResourceAsStream("./test.resource");
4. CopyUtils.copy( inputStream, writer );
5. writer.close( );
6. inputStream.close( );
Writer writer = new FileWriter( "test.dat" );
InputStream inputStream =
getClass( ).getResourceAsStream("./test.resource");
CopyUtils.copy( inputStream, writer );
writer.close( );
inputStream.close( );
如果需要把信息从Reader或InputStream拷贝到字符串中,请使用IOUtils.toString()方法.
Java代码 复制代码
1. InputStream inStream = url.openStream( );
2. String contents = IOUtils.toString( inStream );
InputStream inStream = url.openStream( );
String contents = IOUtils.toString( inStream );
通过org.apache.commons.io.IOUtils,你可以很好地关闭某个InputStream,OutputStream,Reader或Writer,而不必担心null或IOException.
Java代码 复制代码
1. try {
2. File file = new File( "test.dat" );
3. reader = new FileReader( file );
4. result = CopyUtils.toString( reader );
5. } catch( IOException ioe ) {
6. System.out.println( "Unable to copy file test.dat to a String." );
7. } finally {
8. IOUtils.closeQuietly( reader );
9. }
try {
File file = new File( "test.dat" );
reader = new FileReader( file );
result = CopyUtils.toString( reader );
} catch( IOException ioe ) {
System.out.println( "Unable to copy file test.dat to a String." );
} finally {
IOUtils.closeQuietly( reader );
}
使用FileUtils.byteCountToDisplaySize()生成一个字符串,该字符串含有有一个近似的比较好理解的文件的相对大小的值.
Java代码 复制代码
1. File file = new File("project.xml");
2. long bytes = file.length( );
3. String display = FileUtils.byteCountToDisplaySize( bytes );
File file = new File("project.xml");
long bytes = file.length( );
String display = FileUtils.byteCountToDisplaySize( bytes );
如果需要将一个文件拷贝为另一个文件,或者需要将某个文件拷贝到某一个目录中,可以使用如下的代码:
拷贝为另一个文件:
Java代码 复制代码
1. File src = new File( "test.dat" );
2. file dest = new File( "test.dat.bak" );
3. FileUtils.copyFile( src, dest );
File src = new File( "test.dat" );
file dest = new File( "test.dat.bak" );
FileUtils.copyFile( src, dest );
拷贝到某一个目录:
Java代码 复制代码
1. File src = new File( "test.dat" );
2. File dir = new File( "./temp" );
3. FileUtils.copyFileToDirectory( src, dir );
File src = new File( "test.dat" );
File dir = new File( "./temp" );
FileUtils.copyFileToDirectory( src, dir );
使用Commons IO,你也可以很方便把字符串的内容写入文件中去,具体的过程不用怎么理会:
Java代码 复制代码
1. String string = "Blah blah blah";
2. File dest = new File( "test.tmp" );
3. FileUtils.writeStringToFile( dest, string);
String string = "Blah blah blah";
File dest = new File( "test.tmp" );
FileUtils.writeStringToFile( dest, string);
当然,有另外的一个功能,可以将URL的内容存入文件中去:
Java代码 复制代码
1. URL src = new URL( "http://www.nytimes.com" );
2. File dest = new File( "times.html" );
3. FileUtils.copyURLToFile( src, dest );
URL src = new URL( "http://www.nytimes.com" );
File dest = new File( "times.html" );
FileUtils.copyURLToFile( src, dest );
如果你需要删除一个目录下的所有内容(包括其目录),可以这样做:
Java代码 复制代码
1. File dir = new File( "temp" );
2. FileUtils.deleteDirectory( dir );
File dir = new File( "temp" );
FileUtils.deleteDirectory( dir );
如果只想清空目录下所有内容,并不删除该目录,可以这样写:FileUtils.cleanDirectory( dir );
很简单地,可以得到一个目录的大小:
Java代码 复制代码
1. File dir = new File( "temp" );
2. long dirSize = FileUtils.sizeOfDirectory( );
File dir = new File( "temp" );
long dirSize = FileUtils.sizeOfDirectory( );
如果你想得到某个目录下所有以.txt结尾的文件,可以如下这样做:
Java代码 复制代码
1. import java.io.FilenameFilter;
2. import org.apache.commons.io.filefilter.SuffixFileFilter;
3. import org.apache.commons.lang.ArrayUtils;
4.
5. File rootDir = new File(".");
6. FilenameFilter fileFilter = new SuffixFileFilter(".txt");
7. String[] txtFiles = rootDir.list( fileFilter );
8. System.out.println( ArrayUtils.toString( txtFiles ) );
import java.io.FilenameFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.apache.commons.lang.ArrayUtils;
File rootDir = new File(".");
FilenameFilter fileFilter = new SuffixFileFilter(".txt");
String[] txtFiles = rootDir.list( fileFilter );
System.out.println( ArrayUtils.toString( txtFiles ) );
举另一个例子,怎样列出目录中以.htm和.html结尾的文件
Java代码 复制代码
1. import org.apache.commons.io.filefilter.AndFileFilter;
2. import org.apache.commons.io.filefilter.DirectoryFileFilter;
3. import org.apache.commons.io.filefilter.IOFileFilter;
4. import org.apache.commons.io.filefilter.NotFileFilter;
5. import org.apache.commons.io.filefilter.OrFileFilter;
6. import org.apache.commons.io.filefilter.SuffixFileFilter;
7. import org.apache.commons.lang.ArrayUtils;
8.
9. IOFileFilter htmlFilter =
10. new OrFileFilter( new SuffixFileFilter("htm"),new SuffixFileFilter("html") ); //复合两个SuffixFileFilter
11. IOFileFilter notDirectory = new NotFileFilter( DirectoryFileFilter.INSTANCE ); //拒绝选择目录
12. FilenameFilter fileFilter = new AndFileFilter( htmlFilter, notDirectory );
13. String[] htmlFiles = rootDir.list(fileFilter);
14. System.out.println( ArrayUtils.toString( htmlFiles ));
import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.NotFileFilter;
import org.apache.commons.io.filefilter.OrFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.apache.commons.lang.ArrayUtils;
IOFileFilter htmlFilter =
new OrFileFilter( new SuffixFileFilter("htm"),new SuffixFileFilter("html") ); //复合两个SuffixFileFilter
IOFileFilter notDirectory = new NotFileFilter( DirectoryFileFilter.INSTANCE ); //拒绝选择目录
FilenameFilter fileFilter = new AndFileFilter( htmlFilter, notDirectory );
String[] htmlFiles = rootDir.list(fileFilter);
System.out.println( ArrayUtils.toString( htmlFiles ));
注:文中代码来之<<Jakarta Commons Cookbook>>一书第十章
文章待续,会写一些关于commons的笔录下来
发表评论
-
JAVA 线程
2011-01-11 10:32 1282我们可以在计算机上运 ... -
WeakReference
2011-01-11 09:02 2378reachable, the following happen ... -
Java的多线程机制
2010-08-25 23:59 19085程序、进程和线程: ... -
Why would a static inner interface be used in Java?
2010-07-22 11:01 1531Q:I have just found a static in ... -
java中的深拷贝和浅拷贝
2010-07-22 10:58 1466做项目时,可能会碰到这样的一个问题,就是需要把一个对象的属性完 ... -
JAVA 反射
2010-07-22 10:41 1505反射:Class c = Class.forName (&qu ... -
Thinking in java inner classes
2010-07-21 09:44 1182Thinking in java inner cla ... -
1Java 的多重继承与内部类
2010-07-21 09:38 2408<!-- @pa ... -
java插入排序算法
2010-06-29 09:52 1402插入排序算法策略:排序值列中的前2个值,并在必要时交换它们。在 ... -
Java中的volatile关键字
2010-06-12 10:00 1202Java中的volatile关键字 ... -
java 数组排序后,倒过来
2010-01-29 20:11 2761public int[] sort() ... -
用java获取文件夹的大小
2010-01-29 20:09 9534用java获取文件夹的大小 ... -
JAVA移位运算符
2009-12-03 15:50 35644移位运算符就是在二进 ... -
java二进制,字节数组,字符,十六进制,BCD编码转换
2009-12-03 15:48 7417java二进制,字节数组,字符,十六进制,BCD编码转换 ... -
Java内存泄露
2009-02-02 12:02 1908一、问题的提出 Java的一个重要优点就是通过垃圾收集器(Ga ... -
Java 的反射机制基本理解
2008-12-04 17:55 1622Java 的反射机制是使其具有动态特性的非常关键的一种机制,也 ... -
JAVA基础(多线程Thread和Runnable的使用区别
2008-12-04 15:03 44254Runnable是Thread的接口,在大多数情况下“推荐用接 ... -
java解构造器
2008-11-27 10:14 1227解构造器 构造器和方法的区别 摘要 要学习Java,你 ... -
equalsbuilder 示例
2008-11-27 09:32 18791.判断是否为空(null),是则false 2.判断是否 ... -
jakarta commons lang:HashCodeBuilder和EqualsBuilder
2008-11-14 14:42 2337在判断两个对象是否相等的时候,会先调用hashCode方法,如 ...
相关推荐
基本数据类型和字符串类型需要结合InputStream和OutputStream来处理。 b) 引用类型:serializable transient 引用类型需要实现serializable接口,以便将对象序列化为字节流。 6. 字符流:只能处理纯文本 字符流...
15. Java的IO流分为字符流(Character Stream)和字节流(Byte Stream),分为输入流(InputStream/Reader)和输出流(OutputStream/Writer)。 16. BIO(Blocking IO)是同步阻塞的,NIO(Non-blocking IO)是同步...
字节流继承于 InputStream/OutputStream,字符流继承于 Reader/Writer。 8. 如果 main 方法被声明为 private 会怎样? 答案:能正常编译,但运行的时候会提示”main 方法不是 public 的”。 9. Java 里的传引用和...
Java IO 包含了许多类,如InputStream、OutputStream、Reader、Writer等,它们分别用于处理字节流和字符流。字节流适用于二进制数据,而字符流适用于文本数据。Java IO 还包括Filter流,可以用来装饰其他流,添加...
分为字节流(Byte Stream)和字符流(Character Stream),又分别分为输入流(InputStream/Reader)和输出流(OutputStream/Writer)。 16. **BIO、NIO、AIO的区别**: BIO是同步阻塞,NIO是同步非阻塞,AIO...
1. **IO流**:Java中用于数据输入输出的流,分为字节流和字符流两大类,如`InputStream`、`OutputStream`、`Reader`、`Writer`等。 2. **FileInputStream/FileOutputStream**:用于读取和写入文件的字节流,适用于...
- `InputStream` 和 `OutputStream`:最基础的字节流类。 - `Reader` 和 `Writer`:最基础的字符流类。 - `FileInputStream` 和 `FileOutputStream`:用于文件的读写操作。 - `BufferedReader` 和 `...
- **InputStream/OutputStream**:输入输出流的基类。 - **Reader/Writer**:字符流的基类。 - **FileInputStream/FileOutputStream**:文件输入输出流。 - **BufferedReader/BufferedWriter**:带缓冲的字符流。 - ...
- 字节流和字符流的理解,InputStream和OutputStream、Reader和Writer家族。 - 缓冲流BufferedReader和BufferedWriter的使用。 13. **线程与并发**: - Thread类的使用,实现多线程的方法。 - 线程同步机制,...