1. java中的包有那些
以下是常用包:
1、java.lang包:java的核心類庫,包含了運行java程序必不可少的系統類,如基本數據類型、基本數學函數、字元串處理、線程、異常處理類等,系統預設載入這個包
2、java.io包:java語言的標准輸入/輸出類庫,如基本輸入/輸出流、文件輸入/輸出、過濾輸入/輸出流等等
3、java.util包:包含如處理時間的date類,處理變成數組的Vector類,以及stack和HashTable類
4、java.util.zip包:實現文件壓縮功能
5、java.lang.reflect包:提供用於反射對象的工具
6、java.awt.image包:處理和操縱來自於網上的圖片的java工具類庫
7、java.wat.peer包:很少在程序中直接用到,使得同一個java程序在不同的軟硬體平台上運行
8、java.applet包
9、java.net包:實現網路功能的類庫有Socket類、ServerSocket類
10、java.corba包和java.corba.orb包
11、java.awt.datatransfer包:處理數據傳輸的工具類,包括剪貼板,字元串發送器等
12、java.awt包:構建圖形用戶界面(GUI)的類庫,低級繪圖操作Graphics類,圖形界面組件和布局管理如 Checkbox類、Container類、LayoutManger介面等,以及界面用戶交互控制和事件響應,如Event類
13、java.awt.event包:GUI事件處理包。
14、java.sql包:實現JDBC的類庫
2. Java的IO的類有哪些都有什麼用
java的IO類操作主要包括如下幾類
1、File類的使用。
2、位元組操作流:OutputStream、InputStream
3、字元操作流:Reader、Writer
4、對象序列化:serializable
(1)File類
從定義看,File類是Object的直接子類,同時它繼承了Comparable介面可以進行數組的排序。
File類的操作包括文件的創建、刪除、重命名、得到路徑、創建時間等,以下是文件操作常用的函數。
(2)位元組操作流(btyle)
(1)位元組輸出流OutputStream
(2)位元組輸入流InputStream
(3)字元輸出流Write
(4)字元輸入流Reader
(5)位元組流和字元流的區別(重點)
3. java io包中的類體現了什麼設計思想
說設計思想,當然是面向對象思想啦。
說設計模式的話,用到了裝飾模式和適配器模式,下面簡要說明,
1、裝飾者模式:在由 InputStream,OutputStream,Reader和Writer代表的等級結構內部,有一些流處理器可以對另一些流處理器起到裝飾作用,形成新的,具有改善了的功能的流處理器。裝飾者模式是Java I/O庫的整體設計模式。這樣的一個原則是符合裝飾者模式的。
2、適配器模式:在由InputStream,OutputStream,Reader和Writer代表的等級結構內部,有一些流處理器是對其它類型的流源的適配。這就是適配器模式的應用。
4. java的io包如何系統的學習
先從他們的父介面學起,inputStream跟outputStream這兩個介面學起,了解他們的子類 有的共同方法,最後就是多實踐了。你可以寫寫小軟體玩玩,比如寫一個文件分割器。
5. java的IO類那麼多,應該掌握哪幾個
IO包中絕大部分的類都是由以下四個類直接或間接繼承來的
InputStream OutputStream Reader 還有Writer
其中InputStream和OutputStream代表輸入流和輸出流,也就是位元組流的輸入和輸出,他們定義了如何讀取和寫入位元組和位元組數組,所以說基本上所有XXXInputStream和XXXOutputStream都是針對位元組進行操作的
比如說FileInputStream,它可以以流的形式讀取一個文件,或者StringBufferInputStream,它以流的形式讀取一個字元串,所有的子類都是不同領域的應用罷了
而Reader和Writer是在輸入輸出流之上的更高級的字元級別的輸入輸出,稱為讀取器和寫入器,他們直接讀取和寫入字元(字元串)數據而不是位元組(位元組數組),比如你有一個文本文件就可以使用FileReader這個類來讀取裡面的文本,還有PrintWriter是用來輸出的寫入器,System.out的那個out返回的就是一個PrintWirter的內部實現PrintOutputStream
其實具體類用的比較多的就是File開頭的String開頭的和Object開頭的,Object開頭的是用來序列化讀取的
IO包並不難,別被嚇到了,掌握好他們之間的繼承關系,就可以很容易了解
6. 同學們知道Java中的IO是指什麼
一般指文件相關的操作。在Java中,使用文件流進行編碼時,需要引入對應的JAR包,而其中最zhuan主要的類,像File、FileInputStream、FileOutputStream等等shu,大多都封裝在IO這個包裡面。所以Java中,說到IO相關的操作,一般情況下都會認為是文件相關的操作。
7. 怎樣才能學好java的IO包呢
我開始學java時,java.io的介紹是在《java編程思想》里看的。說實話,當時完全看不明白——「java.io的是用『decorator模式』來構建的」——剛學java時,天知道啥玩意叫decorator……
不過要明白java.io,確實需要理解decorator設計模式,下面詳細介紹下。
所謂decorator,裝飾,其實可以說是一種設計的技巧,說白了沒什麼難的,別看很多網上資料說的天花亂墜的(非常討厭有些文章總是把簡單的問題描述得跟兩頭豬的kiss問題一樣復雜……)。
decorator的結構如下:
MyInterface
|
_______|_______
| |
Myclass Decorator
____|_____
| |
DecoratorA DecoratorB
decorator的目的是在不改變任何原有的類的基礎下,添加新的功能(你可以理解為書上說的靈活性)。其中Myclass是你要擴展的類,DecoratorA跟DecoratorB封裝了你要擴展的功能,並保存有一個MyInterface的引用。
考慮以下代碼:
public static void main(Strings[] arg){
myInterface a = new myClass();
a.print();
}
myInterface 是myClass的介面,只聲明了一個方法print(),myClass實現了該方法:
public void print(){
System.out.println("hello");
}
那麼假如我們要在不改變原來的myClass的基礎上,變成輸出「hello world!」,要怎麼做呢?
當然我們可以考慮直接寫個myClass的子類,helloClass之類,但是要是要求根據環境不同,輸出"hello world!",my hello world","my Hello"之類的組合呢?
用繼承的方式將不得不寫一堆類似的子類來。
decorator,裝飾模式的解決方法是,只實現基本的功能,把附加的功能抽出來放一邊。
例如以下代碼:
class DecoratorA implements Decorator{
MyInterface myObject;
DecoratorA(myInterface myObject){
this.myObject = myObject;
}
public void print(){
myObject.print();
System.out.print("world!");
}
}
class DecoratorB implements Decorator{
MyInterface myObject;
DecoratorA(myInterface myObject){
this.myObject = myObject;
}
public void print(){
System.out.print("my");
myObject.print();
}
}
DecoratorA和DecoratorB的功能分別是列印出world跟my。這時main函數要列印出my hello world可簡單變為:
public static void main(Strings[] arg){
MyInterface a =new DecoratorA(new DecoratorB(new MyClass());
a.print();
}
簡單吧?簡單的說,就是:
print(){
print("xxx");//可替換成你要添加的任何處理;
myObject.print();//調用基礎類的函數;
xxxx; //後續處理
}
Decorator的介紹就到此為止,接下來講java.io.
看到
MyInterface a =new DecoratorA(new DecoratorB(new MyClass());
是不是覺得眼熟咧?這跟
BufferedInputStream bis = new BufferedInputStream(new DataInpuStream(new FileInputStream("xxx.txt")));
是不是很像?
(畫外音加一個臭雞蛋扔上來:因為java.io就是用decorator模式組織的,當然像啦……)
java.io分Stream跟reader、writer兩大類,這里只詳細介紹Stream,並最後兩者間的關系。Stream又分inputStream、OutputStream,兩者基本是對稱的,這里也只介紹InputStream.
java.io.InputStream
|
_______________________|________________________
| |
ByteArrayInputStream FilterInputStream
StringBufferInputStream _____________________|____________________________
FileInputStream | | | |
PipedInputStream DataInputStream BufferedInputStream LineNumInpuStream XXX
(註:xxx是PushbackInputStream,上面的圖放不下)
這個圖跟最初介紹的hello world的圖很像吧?呵呵。
基礎的流只有左邊4個,這些流代表了數據的來源,所有的流都必須從這四個中之一開始。(注,還有一個RandomAccessFile、File,這兩個不在本文介紹范圍)。
然後當我們需要什麼添加功能,就從右邊中選擇一個裝飾。例如,我們需要緩存功能,那麼需要bufferedInputStream裝飾:
BufferdInputStream is = new BufferedInputStream(new FileInputStream("xxx.txt"));
假如再要DataInputStream的功能,只要在加一層:
DataInputStream dis = new DataInputStream(new BufferdInputStream(new FileInputStream));
(厄,我不甚明白這個類添加的功能是做什麼用的,資料說是增加讀取java原生數據的功能,不甚明白,有清楚的來補充一下,pipeInputStream跟sequenceInputStream也沒用過,歡迎補充說明)
這里你可以想像成,在基本的FileInputStream.readxxx()方法在BufferedInputStream的readxxx()方法調用,並添加相應的處理。