2017-06-07 55 views
-1

我教我一些關於文件和I/O在Java中,基於此教程:Oracle Tutorial爲什麼java charset需要額外的導入?

現在,寫一些例子來理解輸入和輸出後,我得到了關於某些庫的進口問題。

我創建了下面的示例程序,我問自己,爲什麼程序上寫着:

找不到符號 - 類字符集

import java.nio.*; 

public class test 
{ 

public static void main(String[] args) 
{ 
    Charset charset = Charset.forName("US-ASCII"); 
} 

} 

我知道解決的辦法是導入跟在 import java.nio.charset。*;

但是爲什麼我必須導入它,如果我已經有父庫了?

+1

什麼「父母圖書館」?請注意,當你導入'java.nio'(你沒有)時,你*只導入該包,而不是任何子包。 – Andreas

+0

對不起,它是java.nio。*; –

+1

'java.nio.charset'是'java.nio'的一個不同的包。而已。 – khelwood

回答

0

您導入包而不是庫。一個庫可能包含多個包,但這並不意味着您可以避免單獨導入它們。

此外,Charset類屬於java.nio。 charset包,而您已導入java.nio。 文件包。兩者之間沒有關係 - 一個不是另一個的父母。

0

但是爲什麼我必須導入它,如果我已經有父庫了?

不,你沒有,想象的包文件夾和子文件夾中定義的路徑...

在導入此

java.nio.file *。

您正在訪問在「路徑」

但字符集是在java.nio.charset中的文件夾....至極實際上是另一個完全不同的路徑中的所有類...

你的意思是進口全部來自父類包

java.nio。*;

0

幫助的一個例子是,當您考慮它時,對象包是所有包的王者,但是如果導入它,則不會得到它下面的所有東西。那麼就沒有必要永遠輸入東西,更不用說這造成的問題了。你不能只導入一個包,並期望它下面創建的所有東西都可以隨它一起出現。由於存儲原因,子包仍然是需要的。

相關問題