更新時間:2021-11-23 10:02:09 來源:動力節點 瀏覽756次
小編來為大家介紹幾款比較常用的Java開發工具:
這是象面包和奶油一樣必須的通用語言庫,這個實用工具類包括一些很早以前在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"
在一種當你需要手動操作多個文件罕見情況下必須具備的工具,這兩個工具很相似(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));
}
}
這是最好的擴展實現包,其中一些被社區叫囂著要加入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,但是很好用:
// 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>();
以上就是關于“比較常用的Java工具類”的介紹,大家如果想了解更多相關知識,可以關注一下動力節點的Java學習,里面的內容豐富,有很多值得學習的知識,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習