Java操作檔案方法

   本文彙集熱門檔案操作方法,包括檔案的建立/檢查與刪除,目錄的建立/檢查與刪除,取出目錄中檔案,檔案屬性的取得,對檔案資料進行讀寫等等。檔案路徑問題:絕對路徑如:E://test在JSP中String path=request.getRealPath("");在servlet和Action中 String path=servlet.getServletContext().getRealPath("");檔案夾操作File dirFile =new

[開源架構推薦]Icepdf:純java的pdf文檔的提取和轉換庫

ICEpdf 是一個輕量級的開源 Java 語言的 PDF 類庫。通過 ICEpdf 可以用來瀏覽、內容提取和轉換 PDF 文檔,而無須一些本地PDF庫的支援。可以用來做什嗎?1、從pdf檔案中提取所有的文字或資訊,比如給pdf文檔做摘要2、把pdf轉換成圖片,這個功能非常的棒,比如給pdf檔案做縮圖或者直接做一個純js的pdf閱讀器。3、pdf文檔的分頁列印和資訊搜尋。4、pdf中添加、修改或刪除批註資訊。在pdf到圖片轉換方面,最好的開源產品。官方地址:http://www.icesoft.

Java牛角尖【005】:finalize方法什麼時間執行?

  與C++不同,Java有自己的記憶體回收機制,同時,Java沒有了解構函式的概念,轉而提供了一個finalize方法,那麼finalize方法會在什麼時間執行呢?  或許有人以為是在將引用設定為null的時候,現在先看下面的例子:  public class Test {public static void main(String[] args) {// TODO Auto-generated method stubDemo d = new

Java中clone方法的用法

    

Java牛角尖【006】: 匿名內部類可以繼承其它類嗎?

  在Swing開發時,大家應該經常用到下面的代碼:JButton btnTest = new JButton();btnTest.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent evt) {// do something here}};    通過匿名內部類的使用,我們可以方便地建立一個只能在此按鈕中起作用的一個ActionListener介面的實現,這個實現只在該位置可用。 

Java中類的引用Copy,淺Copy和深Copy

    程式設計語言的Copy基本分為引用Copy,淺Copy和深Copy。     引用Copy比較簡單,我們將一個引用指向一個對象,就是一個引用Copy,引用Copy不會建立對象,只會將引用指向已存在的對象,代碼如下: Object o1 = new Object();Object o2 = o1;     淺Copy是Java預設的Copy方法,在調用clone()方法時,Java將進行淺Copy,在該過程中,Java對該對象進行Copy,對其中的基礎資料型別 (Elementary

Java牛角尖【009】: 多線程中synchronized的鎖定方式

  同一個對象中的一個synchronized方法如果已有一個線程進入,則其它的線程必須等該線程結束後才能進入該方法。那麼,如果一個類中有多個synchronized方法,會有什麼情況呢?  看下面一段代碼:public class Test {static Test t = new Test();static Test2 t2 = new Test2();public static void main(String[] args) {// TODO Auto-generated method

Java牛角尖【001】:抽象類別必須有抽象方法嗎?

  我們都知道,有抽象方法的類是抽象類別,反過來說,抽象類別都有抽象方法嗎?  其實這個問題非常明白,用abstract修飾的類就是抽象類別,並不是說抽象類別中必須有抽象方法,即使一個類中的方法全部實現過,也可以用abstract修飾為抽象類別,所以抽象類別不一定都有抽象方法。  下面代碼中是一個沒有抽象方法的抽象類別:abstract class DemoClass{public void printMessage(String msg){System.out.println(msg);}} 

Java牛角尖【010】: 當對象a.equals(b)時,a.hashCode == b.hashCode嗎?

  當然不是了,hashCode和equals方法都可以被重寫的,如果重寫了其中的一個,而沒有重寫另外一個, 這個結論明顯是錯誤的。  代碼如下:public class Test {public static void main(String[] args) {// TODO Auto-generated method stubTest2 t = new Test2("zhangsan", 20);Test2 t2 = new Test2("zhangsan", 30);System.out.

Java中的“君不君,臣不臣,父不父,子不子”

   閑來無事,拿Java來看一下什麼叫做“君不君,臣不臣,父不父,子不子”,沒有想到的是,下面這段代碼竟然可以編譯通過,只是在執行的時候就死得很慘了:public class Test{SubTest sub = new SubTest();public static void main(String[] args){Test t = new Test();t.sub.p("Hello, World!!");}}class SubTest extends Test{public void p(

Java牛角尖【002】:類可以被static修飾嗎?

  其實這個非常確定,在一班類的定義中是不能使用static修飾符的,但是之所以提出來,是因為真有一種情況可以將類定義為static類型的,那就是內部類。  如下的定義中,是一個內部類的實現:package net.moon.insignificant.staticclass;public class StaticClassDemo {public static void main(String[] args) {StaticClassDemo.InnerClass ic = new

Java牛角尖【011】: Java中只支援單繼承嗎?

   又是一個牛角尖,只是語言不夠嚴謹而已,Java中只支援類的單繼承,介面之間的繼承同樣也是使用extends關鍵字,但是介面之間是支援多繼承的,如下面的例子:interface IP1 {}interface IP2 {}public interface ISub extends IP1, IP2 {}  很明顯,上面的代碼是沒有問題的。所以標題中的應該是不嚴謹的,嚴格的說應該是Java中類的繼承只支援單繼承。 

Java牛角尖【003】:類初始化時的執行順序

   在初始化一個類時,到底是先執行哪一部分,總體的執行順序是什麼樣的呢,同樣,當類被釋放時,又是怎樣一個順序呢?先來看下面的代碼好了。 package net.moon.insignificant.commonclass;class CommonSubClass extends CommonSupperClass {static {System.out.println("Common sub static initial");}public CommonSubClass()

Java牛角尖【004】:Final類可以有protected屬性或方法嗎?

  Final類可以有protected屬性或方法嗎?這是一個典型的牛角尖,一個類被聲明為final,說明該類不可被繼承,如果類不能被繼承,那麼它可以有protected的屬性和方法嗎?  答案是可以的,那麼,這時的protected到底是什麼存取權限叫呢?  一個protected的屬性或方法,它可以被同一包中的類訪問,或是可以被子類所訪問,但是現在它不能有子類,所以,這時protected其實就和預設的存取權限完全相同,變成了同一包中的類可以訪問。  代碼如下: package

Java private方法訪問

     大家知道,Java中private修飾符修飾的方法或屬性,只有在該類內可以訪問,其他類均無法訪問。事實真的是這樣嗎?下面一個例子可以實現訪問一個類中的private方法,原理是通過Java的反射機制,感覺Java反射機制在這點似乎不太安全。 一個只有一個私人方法的類:package

java/word+fusionchart組建圖表

一個朋友的項目裡用到了fusionchart,同時需要提供多個報表的word下載功能。毫無疑問,只是一個很棘手的問題。fusionchart提供了服務端和用戶端產生圖片的功能,都是基於client端展示了flash以後做的。朋友的項目是基於linux的,office本身的那套com機制是沒辦法通過jacob調用了。純java的操作word,POI和docx4j,可以產生word文檔,table,插入圖片。一個可行的思路是點擊下載報表時,先在一個新頁面開啟各個flash的圖表,再依次調用fusoi

Java牛角尖【007】:Java中的Error能不能被Catch

網上看到很多朋友說Java中Error是無法Catch到的,而Java中定義的Error類型又很難測試到,那就估且以為確是如此吧。但是或許大家都有注意,我們時常會看到這樣的代碼 try{ ...}catch(Throwable ex){ ...} 其中catch中直接捕捉的是一個Throwable類,開啟繼承關係看一下,Exception和Error兩個類同樣是從Throwable類繼承而來,那麼,也就是說Error應該是可以被捕捉的,下面寫個例子證明一下猜測: package

Java牛角尖【012】: JDBC開發時為什麼要用Class.forName(“”)

  前幾天看到一個文章中提出一個問題,在JDBC的開發中為什麼要使用Class.forName,可以不用這句嗎?  我們從代碼出發,來分析一下這個問題。  下面是一段我們常用的JDBC開發中的代碼(註:本文中例子使用Mysql為例子。為方便示範,代碼中忽略異常處理)  Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql",

Java中將毫秒數轉為*天*小時*分*秒

  將毫秒數或兩個日期類型數轉換為*天*小時*分*秒的方法,在進行時間段計算時應該經常用到。  /** * * @param 要轉換的毫秒數 * @return 該毫秒數轉換為 * days * hours * minutes * seconds 後的格式 * @author fy.zhang */public static String formatDuring(long mss) {long days = mss / (1000 * 60 * 60 * 24);long hours =

Java牛角尖【013】: finally塊中的代碼一定會執行嗎?

  在Sun Tutorial中有這樣一句話:The finally block always executes when the try block exits. This ensures that the finally block is executed even if an unexpected exception occurs.  看來finally塊中的語句應該是總會執行的。  先來寫一個最常見的寫法:  public class Test {public static void

總頁數: 4058 1 .... 562 563 564 565 566 .... 4058 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.