• 常用的java工具类


    StringUtils
    这是象面包和奶油一样必须的通用语言库,这个实用工具类包括一些很早以前在String中未包含的重要方法。

    StringUtils.isEmpty(null&& StringUtils.isEmpty(""); // true  
    StringUtils.isBlank("   \n\t");                       // true  
    StringUtils.substringAfterLast("foo.bar.baz"".");   // "baz"  
    StringUtils.substringBeforeLast("foo.bar.baz"".");  // "foo.bar"  
    StringUtils.split("foo.bar.baz"'.');                // { "foo", "bar", "baz" }  
    StringUtils.split("foo,  bar,baz""");             // { "foo", "bar", "baz" }  
    StringUtils.leftPad("1"3'0');                     // "001"  

    IOUtils and FileUtils

    在一种当你需要手动操作多个文件罕见情况下必须具备的工具,这两个工具很相似(FileUtils操作文件,IOUtils操作InputStream和Reader classes),和捆绑常用IO.

    File file1;
    File file2;
    InputStream inputStream;
    OutputStream outputStream;

    // copy one file into another
    FileUtils.copyFile(file1, file2);
    IOUtils.copy(inputStream, outputStream);

    // read a file into a String
    String s1 = FileUtils.readFileToString(file1);
    String s2 
    = IOUtils.toString(inputStream);

    // read a file into a list of Strings, one item per line

    List<String> l1 = FileUtils.readLines(file1);
    List
    <String> l2 = IOUtils.readLines(inputStream);

    // put this in your finally() clause after manipulating streams
    IOUtils.closeQuietly(inputStream);

    // return the list of xml and text files in the specified folder and any subfolders
    Collection<File> c1 = FileUtils.listFiles(file1, { "xml""txt" }, true);

    // copy one folder and its contents into another
    FileUtils.copyDirectoryToDirectory(file1, file2);

    // delete one folder and its contents
    FileUtils.deleteDirectory(file1);
    1.文件内容拷贝:
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.Writer;
     
    import org.apache.commons.io.FileUtils;
    import org.apache.commons.io.IOUtils;
     
     
    publicclass FileCopyExample {
        publicstaticvoid main(String[] args) {
           
    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 
    =FileCopyExample.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 
    =FileCopyExample.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" );
           }
        }
     
    }
     
    2.文件删除:
    File file 
    = new File( ("io/project.properties") );
           String display 
    = FileUtils.byteCountToDisplaySize( file.length() );
           System.out.println( 
    "project.xml is " + display );
           FileUtils.forceDelete(file) 
     
    3.读取取文本中的每一行:
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
     
    import org.apache.commons.io.FileSystemUtils;
    import org.apache.commons.io.FileUtils;
     
     
    public class Test {
     
           
    /**
            * 
    @param args
            * 
    @throws IOException 
            
    */
           
    public static void main(String[] args) throws IOException {
                  
    // TODO Auto-generated method stub
                  File file = new File((Test.class.getClass().getResource("/io/web.xml")).getFile());
                   List lines 
    = FileUtils.readLines(file, "UTF-8");
                   
    for(int i=0;i<lines.size();i++)
                   System.out.println(lines.get(i));
           }
     
    }   

    Google collections

    这是我所知道的最好的扩展实现包,其中一些被社区叫嚣着要加入JDK:

    // create an ArrayList with three arguments
    List<String> list = Lists.newArrayList("foo""bar""baz");

    // notice that there is no generics or class cast,
    // and still this line does not generate a warning.
    Set<String> s = Sets.newConcurrentHashSet();

    // intersect and union are basic features of a Set, if you ask me
    Set<String> s = Sets.intersect(s1, s2);

    // Example  of multiple values in a Map
    ListMultimap<String, Validator> validators = new ArrayListMultimap<String, Validator>();
    validators.put(
    "save"new RequiredValidator());
    validators.put(
    "save"new StringValidator());
    validators.put(
    "delete"new NumberValidator());

    validators.get(
    "save"); // { RequiredValidator, StringValidator }
    validators.get("foo");  // empty List (not null)
    validators.values();    // { RequiredValidator, StringValidator, NumberValidator }

    java.util.concurrent

    不是每个人都需要这么重的java.util.concurrent,但是很好用:

    // a map that may be modified (by the same or different thread) while being iterated
    Map<String, Something> repository = new ConcurrentHashMap<String, Something>();

    // same with lists. This one is only available with Java 6
    List<Something> list = new CopyOnWriteArrayList<Something>();


  • 相关阅读:
    LibreOJ 6003. 「网络流 24 题」魔术球 贪心或者最小路径覆盖
    LibreOJ #6002. 「网络流 24 题」最小路径覆盖
    LibreOJ #6000. 「网络流 24 题」搭配飞行员 最大匹配
    LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配
    hdu 1011 Starship Troopers 树形背包dp
    Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland dfs
    hdu 6199 gems gems gems dp
    hdu 5212 Code 筛法或者莫比乌斯
    hdu 3208 Integer’s Power 筛法
    hdu 5120 Intersection 两个圆的面积交
  • 原文地址:https://www.cnblogs.com/jifeng/p/2140003.html
Copyright © 2020-2023  润新知