设为首页 收藏本站
查看: 809|回复: 0

[经验分享] apache common io包基本使用(包括文件的监听,过来,比较等)

[复制链接]

尚未签到

发表于 2017-1-13 09:55:27 | 显示全部楼层 |阅读模式
  原文参考 
http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html 

  Apache Commons IO 包绝对是好东西,地址在http://commons.apache.org/proper/commons-io/,下面用例子分别介绍: 
  1)  工具类 
  2) 输入 
  3) 输出 
  4) filters过滤 
  5) Comparators 
  6) 文件监控 
  
   总的入口例子为: 
  
Java代码   DSC0000.png


  • public class ApacheCommonsExampleMain {  
  •   
  •     public static void main(String[] args) {  
  •         UtilityExample.runExample();  
  •           
  •         FileMonitorExample.runExample();  
  •           
  •         FiltersExample.runExample();  
  •           
  •         InputExample.runExample();  
  •           
  •         OutputExample.runExample();  
  •           
  •         ComparatorExample.runExample();  
  •     }  
  • }  

  


一  工具类包UtilityExample代码: 

    这个工具类包分如下几个主要工具类: 
     1) FilenameUtils:主要处理各种操作系统下对文件名的操作 
     2) FileUtils:处理文件的打开,移动,读取和判断文件是否存在 
    3) IOCASE:字符串的比较 
    4) FileSystemUtils:返回磁盘的空间大小 

   
Java代码  


  • import java.io.File;  
  • import java.io.IOException;  
  •   
  • import org.apache.commons.io.FileSystemUtils;  
  • import org.apache.commons.io.FileUtils;  
  • import org.apache.commons.io.FilenameUtils;  
  • import org.apache.commons.io.LineIterator;  
  • import org.apache.commons.io.IOCase;  
  •   
  • public final class UtilityExample {  
  •       
  •     // We are using the file exampleTxt.txt in the folder ExampleFolder,  
  •     // and we need to provide the full path to the Utility classes.  
  •     private static final String EXAMPLE_TXT_PATH =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder\\exampleTxt.txt";  
  •       
  •     private static final String PARENT_DIR =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample";  
  •   
  •     public static void runExample() throws IOException {  
  •         System.out.println("Utility Classes example...");  
  •           
  •           
  •         // FilenameUtils  
  •           
  •         System.out.println("Full path of exampleTxt: " +  
  •                 FilenameUtils.getFullPath(EXAMPLE_TXT_PATH));  
  •           
  •         System.out.println("Full name of exampleTxt: " +  
  •                 FilenameUtils.getName(EXAMPLE_TXT_PATH));  
  •           
  •         System.out.println("Extension of exampleTxt: " +  
  •                 FilenameUtils.getExtension(EXAMPLE_TXT_PATH));  
  •           
  •         System.out.println("Base name of exampleTxt: " +  
  •                 FilenameUtils.getBaseName(EXAMPLE_TXT_PATH));  
  •           
  •           
  •         // FileUtils  
  •           
  •         // We can create a new File object using FileUtils.getFile(String)  
  •         // and then use this object to get information from the file.  
  •         File exampleFile = FileUtils.getFile(EXAMPLE_TXT_PATH);  
  •         LineIterator iter = FileUtils.lineIterator(exampleFile);  
  •           
  •         System.out.println("Contents of exampleTxt...");  
  •         while (iter.hasNext()) {  
  •             System.out.println("\t" + iter.next());  
  •         }  
  •         iter.close();  
  •           
  •         // We can check if a file exists somewhere inside a certain directory.  
  •         File parent = FileUtils.getFile(PARENT_DIR);  
  •         System.out.println("Parent directory contains exampleTxt file: " +  
  •                 FileUtils.directoryContains(parent, exampleFile));  
  •           
  •           
  •         // IOCase  
  •           
  •         String str1 = "This is a new String.";  
  •         String str2 = "This is another new String, yes!";  
  •           
  •         System.out.println("Ends with string (case sensitive): " +  
  •                 IOCase.SENSITIVE.checkEndsWith(str1, "string."));  
  •         System.out.println("Ends with string (case insensitive): " +  
  •                 IOCase.INSENSITIVE.checkEndsWith(str1, "string."));  
  •           
  •         System.out.println("String equality: " +  
  •                 IOCase.SENSITIVE.checkEquals(str1, str2));  
  •           
  •           
  •         // FileSystemUtils  
  •         System.out.println("Free disk space (in KB): " + FileSystemUtils.freeSpaceKb("C:"));  
  •         System.out.println("Free disk space (in MB): " + FileSystemUtils.freeSpaceKb("C:") / 1024);  
  •     }  
  • }  

  


输出: 
Java代码  


  • Utility Classes example...  
  • Full path of exampleTxt: C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\  
  • Full name of exampleTxt: exampleTxt.txt  
  • Extension of exampleTxt: txt  
  • Base name of exampleTxt: exampleTxt  
  • Contents of exampleTxt...  
  •     This is an example text file.  
  •     We will use it for experimenting with Apache Commons IO.  
  • Parent directory contains exampleTxt file: true  
  • Ends with string (case sensitive): false  
  • Ends with string (case insensitive): true  
  • String equality: false  
  • Free disk space (in KB): 32149292  
  • Free disk space (in MB): 31395  

  


二  FileMonitor工具类包 
   这个org.apache.commons.io.monitor 包中的工具类可以监视文件或者目录的变化,获得指定文件或者目录的相关信息,下面看例子: 
  
Java代码  


  • import java.io.File;  
  • import java.io.IOException;  
  •   
  • import org.apache.commons.io.FileDeleteStrategy;  
  • import org.apache.commons.io.FileUtils;  
  • import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;  
  • import org.apache.commons.io.monitor.FileAlterationMonitor;  
  • import org.apache.commons.io.monitor.FileAlterationObserver;  
  • import org.apache.commons.io.monitor.FileEntry;  
  •   
  •   
  • public final class FileMonitorExample {  
  •       
  •     private static final String EXAMPLE_PATH =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder\\exampleFileEntry.txt";  
  •       
  •     private static final String PARENT_DIR =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder";  
  •       
  •     private static final String NEW_DIR =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder\\newDir";  
  •       
  •     private static final String NEW_FILE =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder\\newFile.txt";  
  •   
  •     public static void runExample() {  
  •         System.out.println("File Monitor example...");  
  •           
  •           
  •         // FileEntry  
  •           
  •         // We can monitor changes and get information about files  
  •         // using the methods of this class.  
  •         FileEntry entry = new FileEntry(FileUtils.getFile(EXAMPLE_PATH));  
  •           
  •         System.out.println("File monitored: " + entry.getFile());  
  •         System.out.println("File name: " + entry.getName());  
  •         System.out.println("Is the file a directory?: " + entry.isDirectory());  
  •           
  •           
  •         // File Monitoring  
  •           
  •         // Create a new observer for the folder and add a listener  
  •         // that will handle the events in a specific directory and take action.  
  •         File parentDir = FileUtils.getFile(PARENT_DIR);  
  •           
  •         FileAlterationObserver observer = new FileAlterationObserver(parentDir);  
  •         observer.addListener(new FileAlterationListenerAdaptor() {  
  •               
  •                 @Override  
  •                 public void onFileCreate(File file) {  
  •                     System.out.println("File created: " + file.getName());  
  •                 }  
  •                   
  •                 @Override  
  •                 public void onFileDelete(File file) {  
  •                     System.out.println("File deleted: " + file.getName());  
  •                 }  
  •                   
  •                 @Override  
  •                 public void onDirectoryCreate(File dir) {  
  •                     System.out.println("Directory created: " + dir.getName());  
  •                 }  
  •                   
  •                 @Override  
  •                 public void onDirectoryDelete(File dir) {  
  •                     System.out.println("Directory deleted: " + dir.getName());  
  •                 }  
  •         });  
  •           
  •         // Add a monior that will check for events every x ms,  
  •         // and attach all the different observers that we want.  
  •         FileAlterationMonitor monitor = new FileAlterationMonitor(500, observer);  
  •         try {  
  •             monitor.start();  
  •           
  •             // After we attached the monitor, we can create some files and directories  
  •             // and see what happens!  
  •             File newDir = new File(NEW_DIR);  
  •             File newFile = new File(NEW_FILE);  
  •               
  •             newDir.mkdirs();  
  •             newFile.createNewFile();  
  •                   
  •             Thread.sleep(1000);  
  •               
  •             FileDeleteStrategy.NORMAL.delete(newDir);  
  •             FileDeleteStrategy.NORMAL.delete(newFile);  
  •               
  •             Thread.sleep(1000);  
  •               
  •             monitor.stop();  
  •         } catch (IOException e) {  
  •             e.printStackTrace();  
  •         } catch (InterruptedException e) {  
  •             e.printStackTrace();  
  •         } catch (Exception e) {  
  •             e.printStackTrace();  
  •         }  
  •     }  
  • }  

  
输出如下: 
  
Java代码  


  • File Monitor example...  
  • File monitored: C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\exampleFileEntry.txt  
  • File name: exampleFileEntry.txt  
  • Is the file a directory?: false  
  • Directory created: newDir  
  • File created: newFile.txt  
  • Directory deleted: newDir  
  • File deleted: newFile.txt  

  

    上面的特性的确很赞!分析下,这个工具类包下的工具类,可以允许我们创建跟踪文件或目录变化的监听句柄,当文件目录等发生任何变化,都可以用“观察者”的身份进行观察, 
其步骤如下: 
   1) 创建要监听的文件对象 
   2) 创建FileAlterationObserver 监听对象,在上面的例子中, 
   File parentDir = FileUtils.getFile(PARENT_DIR); 
  FileAlterationObserver observer = new FileAlterationObserver(parentDir); 
   创建的是监视parentDir目录的变化, 
   3) 为观察器创建FileAlterationListenerAdaptor的内部匿名类,增加对文件及目录的增加删除的监听 
   4) 创建FileAlterationMonitor监听类,每隔500ms监听目录下的变化,其中开启监视是用monitor的start方法即可。 

三  过滤器 filters 
   先看例子: 
  
Java代码  


  • import java.io.File;  
  •   
  • import org.apache.commons.io.FileUtils;  
  • import org.apache.commons.io.IOCase;  
  • import org.apache.commons.io.filefilter.AndFileFilter;  
  • import org.apache.commons.io.filefilter.NameFileFilter;  
  • 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.apache.commons.io.filefilter.WildcardFileFilter;  
  •   
  • public final class FiltersExample {  
  •       
  •     private static final String PARENT_DIR =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder";  
  •   
  •     public static void runExample() {  
  •         System.out.println("File Filter example...");  
  •           
  •           
  •         // NameFileFilter  
  •         // Right now, in the parent directory we have 3 files:  
  •         //      directory example  
  •         //      file exampleEntry.txt  
  •         //      file exampleTxt.txt  
  •           
  •         // Get all the files in the specified directory  
  •         // that are named "example".  
  •         File dir = FileUtils.getFile(PARENT_DIR);  
  •         String[] acceptedNames = {"example""exampleTxt.txt"};  
  •         for (String file: dir.list(new NameFileFilter(acceptedNames, IOCase.INSENSITIVE))) {  
  •             System.out.println("File found, named: " + file);  
  •         }  
  •           
  •           
  •         //WildcardFileFilter  
  •         // We can use wildcards in order to get less specific results  
  •         //      ? used for 1 missing char  
  •         //      * used for multiple missing chars  
  •         for (String file: dir.list(new WildcardFileFilter("*ample*"))) {  
  •             System.out.println("Wildcard file found, named: " + file);  
  •         }  
  •           
  •           
  •         // PrefixFileFilter   
  •         // We can also use the equivalent of startsWith  
  •         // for filtering files.  
  •         for (String file: dir.list(new PrefixFileFilter("example"))) {  
  •             System.out.println("Prefix file found, named: " + file);  
  •         }  
  •           
  •           
  •         // SuffixFileFilter  
  •         // We can also use the equivalent of endsWith  
  •         // for filtering files.  
  •         for (String file: dir.list(new SuffixFileFilter(".txt"))) {  
  •             System.out.println("Suffix file found, named: " + file);  
  •         }  
  •           
  •           
  •         // OrFileFilter   
  •         // We can use some filters of filters.  
  •         // in this case, we use a filter to apply a logical   
  •         // or between our filters.  
  •         for (String file: dir.list(new OrFileFilter(  
  •                 new WildcardFileFilter("*ample*"), new SuffixFileFilter(".txt")))) {  
  •             System.out.println("Or file found, named: " + file);  
  •         }  
  •           
  •         // And this can become very detailed.  
  •         // Eg, get all the files that have "ample" in their name  
  •         // but they are not text files (so they have no ".txt" extension.  
  •         for (String file: dir.list(new AndFileFilter( // we will match 2 filters...  
  •                 new WildcardFileFilter("*ample*"), // ...the 1st is a wildcard...  
  •                 new NotFileFilter(new SuffixFileFilter(".txt"))))) { // ...and the 2nd is NOT .txt.  
  •             System.out.println("And/Not file found, named: " + file);  
  •         }  
  •     }  
  • }  

  
      可以看清晰看到,使用过滤器,可以分别在指定的目录下,寻找符合条件 
的文件,比如以什么开头的文件名,支持通配符,甚至支持多个过滤器进行或的操作! 
  输出如下: 
 
Java代码  


  • File Filter example...  
  • File found, named: example  
  • File found, named: exampleTxt.txt  
  • Wildcard file found, named: example  
  • Wildcard file found, named: exampleFileEntry.txt  
  • Wildcard file found, named: exampleTxt.txt  
  • Prefix file found, named: example  
  • Prefix file found, named: exampleFileEntry.txt  
  • Prefix file found, named: exampleTxt.txt  
  • Suffix file found, named: exampleFileEntry.txt  
  • Suffix file found, named: exampleTxt.txt  
  • Or file found, named: example  
  • Or file found, named: exampleFileEntry.txt  
  • Or file found, named: exampleTxt.txt  
  • And/Not file found, named: example  

  


四  Comparators比较器 
   org.apache.commons.io.comparator包下的工具类,可以方便进行文件的比较: 
Java代码  


  • import java.io.File;  
  • import java.util.Date;  
  •   
  • import org.apache.commons.io.FileUtils;  
  • import org.apache.commons.io.IOCase;  
  • import org.apache.commons.io.comparator.LastModifiedFileComparator;  
  • import org.apache.commons.io.comparator.NameFileComparator;  
  • import org.apache.commons.io.comparator.SizeFileComparator;  
  •   
  • public final class ComparatorExample {  
  •       
  •     private static final String PARENT_DIR =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder";  
  •       
  •     private static final String FILE_1 =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder\\example";  
  •       
  •     private static final String FILE_2 =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\ExampleFolder\\exampleTxt.txt";  
  •       
  •     public static void runExample() {  
  •         System.out.println("Comparator example...");  
  •           
  •         //NameFileComparator  
  •           
  •         // Let's get a directory as a File object  
  •         // and sort all its files.  
  •         File parentDir = FileUtils.getFile(PARENT_DIR);  
  •         NameFileComparator comparator = new NameFileComparator(IOCase.SENSITIVE);  
  •         File[] sortedFiles = comparator.sort(parentDir.listFiles());  
  •           
  •         System.out.println("Sorted by name files in parent directory: ");  
  •         for (File file: sortedFiles) {  
  •             System.out.println("\t"+ file.getAbsolutePath());  
  •         }  
  •           
  •           
  •         // SizeFileComparator  
  •           
  •         // We can compare files based on their size.  
  •         // The boolean in the constructor is about the directories.  
  •         //      true: directory's contents count to the size.  
  •         //      false: directory is considered zero size.  
  •         SizeFileComparator sizeComparator = new SizeFileComparator(true);  
  •         File[] sizeFiles = sizeComparator.sort(parentDir.listFiles());  
  •           
  •         System.out.println("Sorted by size files in parent directory: ");  
  •         for (File file: sizeFiles) {  
  •             System.out.println("\t"+ file.getName() + " with size (kb): " + file.length());  
  •         }  
  •           
  •           
  •         // LastModifiedFileComparator  
  •           
  •         // We can use this class to find which file was more recently modified.  
  •         LastModifiedFileComparator lastModified = new LastModifiedFileComparator();  
  •         File[] lastModifiedFiles = lastModified.sort(parentDir.listFiles());  
  •           
  •         System.out.println("Sorted by last modified files in parent directory: ");  
  •         for (File file: lastModifiedFiles) {  
  •             Date modified = new Date(file.lastModified());  
  •             System.out.println("\t"+ file.getName() + " last modified on: " + modified);  
  •         }  
  •           
  •         // Or, we can also compare 2 specific files and find which one was last modified.  
  •         //      returns > 0 if the first file was last modified.  
  •         //      returns  0)  
  •             System.out.println("File " + file1.getName() + " was modified last because...");  
  •         else  
  •             System.out.println("File " + file2.getName() + "was modified last because...");  
  •           
  •         System.out.println("\t"+ file1.getName() + " last modified on: " +  
  •                 new Date(file1.lastModified()));  
  •         System.out.println("\t"+ file2.getName() + " last modified on: " +  
  •                 new Date(file2.lastModified()));  
  •     }  
  • }  

  

   输出如下: 
Java代码  


  • Comparator example...  
  • Sorted by name files in parent directory:   
  •     C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\comparator1.txt  
  •     C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\comperator2.txt  
  •     C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\example  
  •     C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\exampleFileEntry.txt  
  •     C:\Users\Lilykos\workspace\ApacheCommonsExample\ExampleFolder\exampleTxt.txt  
  • Sorted by size files in parent directory:   
  •     example with size (kb): 0  
  •     exampleTxt.txt with size (kb): 87  
  •     exampleFileEntry.txt with size (kb): 503  
  •     comperator2.txt with size (kb): 1458  
  •     comparator1.txt with size (kb): 4436  
  • Sorted by last modified files in parent directory:   
  •     exampleTxt.txt last modified on: Sun Oct 26 14:02:22 EET 2014  
  •     example last modified on: Sun Oct 26 23:42:55 EET 2014  
  •     comparator1.txt last modified on: Tue Oct 28 14:48:28 EET 2014  
  •     comperator2.txt last modified on: Tue Oct 28 14:48:52 EET 2014  
  •     exampleFileEntry.txt last modified on: Tue Oct 28 14:53:50 EET 2014  
  • File example was modified last because...  
  •     example last modified on: Sun Oct 26 23:42:55 EET 2014  
  •     exampleTxt.txt last modified on: Sun Oct 26 14:02:22 EET 2014  

  


    可以看到,在上面的代码中 
NameFileComparator: 文件名的比较器,可以进行文件名称排序; 
SizeFileComparator: 按照文件大小比较 
LastModifiedFileComparator: 根据最新修改日期比较 

五  input包 
    在 common io的org.apache.commons.io.input 包中,有各种对InputStream的实现类: 
我们看下其中的TeeInputStream, ,它接受InputStream和Outputstream参数,例子如下: 
  
Java代码  


  • import java.io.ByteArrayInputStream;  
  • import java.io.ByteArrayOutputStream;  
  • import java.io.File;  
  • import java.io.IOException;  
  •   
  • import org.apache.commons.io.FileUtils;  
  • import org.apache.commons.io.input.TeeInputStream;  
  • import org.apache.commons.io.input.XmlStreamReader;  
  •   
  •   
  • public final class InputExample {  
  •       
  •     private static final String XML_PATH =  
  •             "C:\\Users\\Lilykos\\workspace\\ApacheCommonsExample\\InputOutputExampleFolder\\web.xml";  
  •       
  •     private static final String INPUT = "This should go to the output.";  
  •   
  •     public static void runExample() {  
  •         System.out.println("Input example...");  
  •         XmlStreamReader xmlReader = null;  
  •         TeeInputStream tee = null;  
  •           
  •         try {  
  •               
  •             // XmlStreamReader  
  •               
  •             // We can read an xml file and get its encoding.  
  •             File xml = FileUtils.getFile(XML_PATH);  
  •               
  •             xmlReader = new XmlStreamReader(xml);  
  •             System.out.println("XML encoding: " + xmlReader.getEncoding());  
  •               
  •               
  •             // TeeInputStream  
  •               
  •             // This very useful class copies an input stream to an output stream  
  •             // and closes both using only one close() method (by defining the 3rd  
  •             // constructor parameter as true).  
  •             ByteArrayInputStream in = new ByteArrayInputStream(INPUT.getBytes("US-ASCII"));  
  •             ByteArrayOutputStream out = new ByteArrayOutputStream();  
  •               
  •             tee = new TeeInputStream(in, out, true);  
  •             tee.read(new byte[INPUT.length()]);  
  •   
  •             System.out.println("Output stream: " + out.toString());           
  •         } catch (IOException e) {  
  •             e.printStackTrace();  
  •         } finally {  
  •             try { xmlReader.close(); }  
  •             catch (IOException e) { e.printStackTrace(); }  
  •               
  •             try { tee.close(); }  
  •             catch (IOException e) { e.printStackTrace(); }  
  •         }  
  •     }  
  • }  

  

输出: 
  
Java代码  


  • Input example...  
  • XML encoding: UTF-8  
  • Output stream: This should go to the output.  

  
   tee = new TeeInputStream(in, out, true); 
   中,分别三个参数,将输入流的内容输出到输出流,true参数为最后关闭流 
六 output工具类包 
  
  其中的org.apache.commons.io.output 是实现了outputstream,其中好特别的是 
TeeOutputStream能将一个输入流分别输出到两个输出流 
  
Java代码  


  • import java.io.ByteArrayInputStream;  
  • import java.io.ByteArrayOutputStream;  
  • import java.io.IOException;  
  •   
  • import org.apache.commons.io.input.TeeInputStream;  
  • import org.apache.commons.io.output.TeeOutputStream;  
  •   
  • public final class OutputExample {  
  •       
  •     private static final String INPUT = "This should go to the output.";  
  •   
  •     public static void runExample() {  
  •         System.out.println("Output example...");  
  •         TeeInputStream teeIn = null;  
  •         TeeOutputStream teeOut = null;  
  •           
  •         try {  
  •               
  •             // TeeOutputStream  
  •               
  •             ByteArrayInputStream in = new ByteArrayInputStream(INPUT.getBytes("US-ASCII"));  
  •             ByteArrayOutputStream out1 = new ByteArrayOutputStream();  
  •             ByteArrayOutputStream out2 = new ByteArrayOutputStream();  
  •               
  •             teeOut = new TeeOutputStream(out1, out2);  
  •             teeIn = new TeeInputStream(in, teeOut, true);  
  •             teeIn.read(new byte[INPUT.length()]);  
  •   
  •             System.out.println("Output stream 1: " + out1.toString());  
  •             System.out.println("Output stream 2: " + out2.toString());  
  •               
  •         } catch (IOException e) {  
  •             e.printStackTrace();  
  •         } finally {  
  •             // No need to close teeOut. When teeIn closes, it will also close its  
  •             // Output stream (which is teeOut), which will in turn close the 2  
  •             // branches (out1, out2).  
  •             try { teeIn.close(); }  
  •             catch (IOException e) { e.printStackTrace(); }  
  •         }  
  •     }  
  • }  

  

  输出: 
Java代码  


  • Output example...  
  • Output stream 1: This should go to the output.  
  • Output stream 2: This should go to the output.  

  

完整代码下载:http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/10/ApacheCommonsIOExample.rar

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-327818-1-1.html 上篇帖子: Apache+SVN+Trac搭建项目管理服务器的安装与配置详解! 下篇帖子: Apache httpd和Tomcat结合配置web应用 应对互联网用户大量请求
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表