package simple.io;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
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;
import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.NotFileFilter;
import org.apache.commons.io.filefilter.OrFileFilter;
import org.apache.commons.io.filefilter.PrefixFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
import org.junit.Test;
public class ApacheIO {
/**
* 用普通的Java IO来解析HTML <br>
*/
@Test
public void testReadURL1() throws MalformedURLException, IOException{
InputStream in = new URL( "http://www.blogjava.net/rongxh7" ).openStream();
try {
InputStreamReader inR = new InputStreamReader( in );
BufferedReader buf = new BufferedReader( inR );
String line;
while ( ( line = buf.readLine() ) != null ) {
System.out.println( line );
}
} finally {
in.close();
}
}
/**
* 用Apache IO来解析HTML <br>
* 学习要点: <br>
* IOUtils contains utility methods dealing with reading, writing and copying. <br>
* The methods work on InputStream, OutputStream, Reader and Writer.
*/
@Test
public void testReadURL2() throws MalformedURLException, IOException {
InputStream in = new URL("http://www.blogjava.net/rongxh7").openStream();
try {
System.out.println(IOUtils.toString(in));
} finally {
IOUtils.closeQuietly(in);
}
}
/**
* 用Apache IO来读文件<br>
* 学习要点:<br>
* The FileUtils class contains utility methods for working with File objects.<br>
* These include reading, writing, copying and comparing files.
*/
@Test
public void testReadFile() throws IOException {
File file = new File("README");
List<String> lines = FileUtils.readLines(file, "GBK");
for(String line : lines){
System.out.println(line);
}
}
/**
* 用Apache IO来操作文件名
* The FilenameUtils class contains utility methods <br>
* for working with filenames without using File objects.
*/
@Test
public void testFileName() {
String filename = "C:/a/b/ccc.txt";
String baseName = FilenameUtils.getBaseName(filename); //ccc
String extName = FilenameUtils.getExtension(filename); //txt
String fullPath = FilenameUtils.getFullPath(filename); //C:/a/b
String name = FilenameUtils.getName(filename); //ccc.txt
System.out.println(baseName);
System.out.println(extName);
System.out.println(fullPath);
System.out.println(name);
}
/**
* 用Apache IO查询磁盘空间
* The FileSystemUtils class contains utility methods <br>
* for working with the file system to access functionality not supported by the JDK.
*/
@Test
public void testFindDrive() throws IOException{
long space = FileSystemUtils.freeSpaceKb("C:/"); //查C盘还剩下多少可用空间
System.out.println("C盘可用空间为: " + space/1024 + " MB");
}
/**
* Line Iterator的用法 <br>
* The org.apache.commons.io.LineIterator class provides a flexible way <br>
* for working with a line-based file. An instance can be created directly, <br>
* or via factory methods on FileUtils or IOUtils.
*/
@Test
public void testLineIterater() throws IOException{
File file = new File("README");
LineIterator it = FileUtils.lineIterator(file, "GBK");
try{
while(it.hasNext()){
String line = it.nextLine();
System.out.println(line);
}
} finally {
LineIterator.closeQuietly(it);
}
}
/**
*
* 各种常用的FileFiter
*
* There are a number of 'primitive' filters:
*
* DirectoryFilter Only accept directories
* PrefixFileFilter Filter based on a prefix
* SuffixFileFilter Filter based on a suffix
* NameFileFilter Filter based on a filename
* WildcardFileFilter Filter based on wildcards
* AgeFileFilter Filter based on last modified time of file
* SizeFileFilter Filter based on file size
*
* And there are five 'boolean' filters:
*
* TrueFileFilter Accept all files
* FalseFileFilter Accept no files
* NotFileFilter Applies a logical NOT to an existing filter
* AndFileFilter Combines two filters using a logical AND
* OrFileFilter Combines two filter using a logical OR
*
*/
/**
* FileFilter的用法1
* 用 "new 子类" 的方式
*
*/
@Test
public void testFileFilter1(){
File dir = new File("data"); //若表示本目录,则用"."
//Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
String[] files = dir.list(
//Constructs a new file filter that ANDs the result of two other filters.
new AndFileFilter(
new AndFileFilter(
new PrefixFileFilter("t"), //Constructs a new Prefix file filter for a single prefix.
new OrFileFilter( //Constructs a new file filter that ORs the result of two other filters.
new SuffixFileFilter(".txt"), //Constructs a new Suffix file filter for a single extension.
new SuffixFileFilter(".dic")
)
),
//Constructs a new file filter that NOTs the result of another filters.
new NotFileFilter(
DirectoryFileFilter.INSTANCE //This filter accepts Files that are directories.
)
)
);
for ( int i=0; i<files.length; i++ ) {
System.out.println(files[i]);
}
}
/**
* FileFilter的用法2
* 用FileFilterUtils的方式
*/
@Test
public void testFileFilter2(){
File dir = new File("data");
String[] files = dir.list(
FileFilterUtils.andFileFilter(
FileFilterUtils.andFileFilter(
FileFilterUtils.prefixFileFilter("t"),
FileFilterUtils.orFileFilter(
FileFilterUtils.suffixFileFilter(".txt"),
FileFilterUtils.suffixFileFilter(".dic")
)
),
FileFilterUtils.notFileFilter(
FileFilterUtils.directoryFileFilter()
)
)
);
for ( int i=0; i<files.length; i++ ) {
System.out.println(files[i]);
}
}
}
分享到:
相关推荐
- `jccook-code.zip`和`javathreads3.examples.zip`: 可能包含了Jakarta Commons IO库和Java线程编程的示例代码。 - `effective2.zip`: 可能是指《Effective Java》一书的第二版中的代码,这本书讲述了编写高质量...
org.apache.commons.net.io org.apache.commons.net.nntp org.apache.commons.net.ntp org.apache.commons.net.pop3 org.apache.commons.net.smtp org.apache.commons.net.telnet org.apache.commons.net.tftp...
commons-codec-1.5.jar commons-logging-1.1.jar dom4j-1.6.1.jar junit-4.11.jar log4j-1.2.13.jar poi-3.10-FINAL-20140208.jar poi-examples-3.10-FINAL-20140208.jar poi-excelant-3.10-FINAL...commons-io-2.2.jar
10. **Java标准库和第三方库**:了解并熟悉Java标准库中的类和方法,同时适时引入Apache Commons、Spring Framework、Hibernate等第三方库,能提升开发效率和代码质量。 通过解压并探索"tut-examples.zip",学习者...
在处理Excel文件时,可能需要对文件进行读写操作,这时 Commons IO 提供的 File、Stream、Buffer 和其他工具类就非常有帮助。例如,可以使用它来创建、复制、移动或删除文件,以及进行流操作,如读取文件到字节数组...
LeanKit-java-examples Leankit.samples.boards示例类,用于列出属于一个 Leankit 帐户的所有板。 Leankit.samples.board用于从特定板检索所有卡片和相应信息的示例类... commons-io-2.4.jar json-simple-1.1.1.jar
4. Commons IO(commons-io-2.2.jar): - Apache Commons IO是一个实用工具库,包含了各种与输入/输出相关的通用操作。在处理Excel和XML文件时,可能会用到文件读写、流处理等功能。 5. JXL(jxl.jar): - JXL...
8. `commons-io-1.2.jar`:Apache Commons IO库,提供了大量的IO操作工具类,如文件读写、流操作等,是处理文件操作的基础库。 通过这些jar包,Java开发者可以实现以下功能: - 读取Excel文件的单元格数据,包括...
This collection provides expert tips for using the utilities of the Java-based Jakarta Commons open source project. You don't have to be an expert, the book's solution-based format contains code ...
Apache commons-io Apache基金会创建并维护的Java函数库 Apache commons-logging 通用的日志接口 dom4j 优秀的JavaXML API 主要用于解析XML文档 poi组件 主要用于读取以及写入Microsoft Office格式档案 JSR 303 为...
Commons-FileUpload(以及Commons-IO) 注:加*的包可使用MyEclipse自带的类库。 Web框架(跨浏览器) FckEditor 可视化编辑HTML XLoadTree 动态加载XML生成JavaScript树组件 jQuery AJAX框架-查询DOM对象,简洁,...
5. **IO流**:Java的IO流用于读写数据,包括文件操作、网络通信等。例子可能包括了字节流、字符流、对象流、缓冲流等的使用。 6. **多线程**:Java提供了内置的多线程支持,可以创建Thread对象或者实现Runnable接口...
- **commons-io-2.4.jar**: Apache Commons IO库,提供了一些基本的文件和输入/输出操作的辅助工具。 - **commons-fileupload.jar**: Apache Commons FileUpload库,用于处理HTTP文件上传,可能在处理用户上传...
commons-io-2.4.jar commons-lang-2.6.jar commons-lang3-3.3.2.jar commons-logging-1.1.1.jar commons-net-3.5.jar commons-pool-1.6.jar DataCenter-util-0.0.1-20161202.072205-3.jar DmDialect-for-...
7. **ID生成库**:Java社区有许多库专门用于生成ID,如Apache Commons Lang的 `RandomUtils` 或者 `java.util.Random` 类。这些库可能被`myid_examples` 使用并进行演示。 8. **ID的编码与解码**:有时ID需要进行...
- **Apache Commons, Guava**:提供各种实用工具类和功能丰富的库。 10. **单元测试** - **JUnit**:Java的单元测试框架,用于编写和运行测试用例。 以上只是部分可能包含在"examples:不同的Java示例"中的内容,...
5. **IO流**:Java的输入输出系统允许程序读写文件、网络数据,包括字节流、字符流、对象流等。 6. **多线程**:Java支持并发编程,包括Thread类、Runnable接口,以及同步机制(synchronized关键字、wait/notify...
【标题】"graduation-thesis-examples"是一个与毕业论文相关的项目,其核心是提供一系列在实际毕业论文中可能用到的示例。这表明该项目可能是为了帮助学生或研究人员更好地理解和应用理论知识到实际的毕业论文写作中...
- `$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar` 此外,我们还可以通过运行`hadoop classpath`命令来获取运行Hadoop程序所需的完整classpath信息,这对于理解整个系统所依赖的所有JAR文件非常有帮助...
随着课程的深入,学习者会接触到更复杂的话题,如继承、多态、接口、异常处理、集合框架(List、Set、Map)以及IO流。 在"JavaCourse-master"这个文件夹中,很可能包含了一系列的子目录和文件,这些可能包括: 1. ...