在前面的文章Linux命令系列之ls——原來最簡單的ls這麼複雜當中,我們仔細的介紹了關於ls命令的使用和輸出結果,在本篇文章當中我們用Java程式碼自己實現ls命令,更加深入的瞭解ls命令。
如果我們使用Java實現一個簡單的ls命令其實並不難,因為Java已經給我們提供了一些比較方便和檔案系統相關的api了,困難的是理解api是在做什麼事兒!
事實上這些api都是作業系統給我們提供的,然後Java進行了一些列的封裝,將這些操作給我們進行提供,我們仔細來看一下封裝的層次,首先作業系統會給我們提供很多系統呼叫用於和裝置(磁碟、CPU)進行互動,比如說和檔案的互動就是讀寫資料,當然我們的Java程式也需要這些操作,因此JVM也需要給我們提供這些操作,因此JVM就對系統呼叫進行了一系列的封裝,在Java當中具體的形式就是用native修飾的方法。
如果你是一個比較有經驗Java程式設計師那麼一定見過Java當中的native
方法,這些方法都是Java給我們封裝的底層介面,比如說在FileInputStream
當中有一個read
方法,這個方法就是讀取檔案當中的內容,我們看一下這個方法是如何實現的:
public int read() throws IOException {
return read0();
}
這裡讓大家的感受更加深入一點