java流類
1. java 中有幾種類型的流
1:按照流的方向(參考點永遠是自己的程序)分:
輸入流(InputStream):只能向其中讀取數據的流.
輸出流(OutputStream):只能向其中寫出數據的流.
注意:輸入流和輸出流本身都是抽象類,不能直接實例化,如果想操作對象,則必須實例化這些類的子類對象.
2:按照數據的傳輸單位分:
位元組流:以位元組為單位傳輸數據的流.
字元流:以字元為單位傳輸的數據的流.
3:按照功能分:
節點(低級)流:直接對目標設備進行操作的流.
處理(高級)流:對節點流進行連接和封裝,生成功能更加強大的流。
在java中,最基礎的流類有哪些?
位元組流:InputStream:只能讀取位元組數據的流.OutputStream:只能寫出位元組數據的流.
字元流:Reader:只能讀取字元數據的流.Writer:只能寫出字元數據的流.
2. Java中有幾種類型的流
位元組流
,字元流。位元組流繼承於
InputStream
、
OutputStream
,字元流繼承於InputStreamReader、
OutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。
3. java中流的種類,按功能和內容分別介紹
1、從功能上:輸入流、輸出流。
輸入流就是從外部輸入數據到程序,輸出流就是從程序輸出數據到外部。
外部就是只硬碟、資料庫、網路等。
2、從結構上:位元組流、字元流。
位元組流是操作位元組集的,字元流是操作字元串的。
字元串轉換為位元組集也可以通過位元組流進行傳輸。
3、從來源上:節點流、過濾流。
節點流好像也叫原始流,過濾流好像也叫裝飾流,不記得了。
過濾流操作的本質也是節點流,就像List的本質是數組一樣。
這個很抽象,你學了就知道。
不行你就再網路一下吧。
4. Java中有幾種類型的流
FileInputSream類
FileInputStream(String name)
FileInputStream(File file)
第一個構造方法是用給定的文件名name創建一個FileInputStream對象
第二個方法使用File對象創建FileInputStream對象
使用文件輸入流讀取文件
例如
FileInputStream istream=new FileInputStream(「myfile.dat」);
或
File f=new File(「myfile.dat」);
FileInputStream istream =new FileInputStream(f);
處理IO異常
Try{
FileInputStream istream=new FileInputStream(「myfile.dat」);
}
Catch(IOException e){}
從輸入流中讀取位元組
Int read();從輸入流中順序讀取源中的單個位元組數據,返回位元組值(0~255之間的一個整數),如果到達源的末尾,則返回-1
Read方法還可以吧多個位元組讀入到位元組數組中:
Int read(byte b[]);
Int read(byte b[],int off,int len);
關閉流
使用close();
FileOutputStream類
該類提供了基本的文件寫入能力,除了從OutputStream類繼承來的方法外,FileOutputStream類還提供了兩個構造方法:
FileOutputStream(String name)
FileOutputStream(File file)
第一個構造方法,給指定的文件名name創建一個FileOutputStreak對象
第二個構造方法,使用File對象創建FileOutputStream對象
可以使用write()方法把位元組寫入到輸出流到達目的地
Write的格式:
Public void write(byte b[]) 其功能就是把b.length個位元組到輸出流
Public void write(byte b[],int off,int len)給定位元組數組中,偏移off處寫入len個位元組到輸出流
FileOutputStream流順序的寫文件,只要不關閉流,每次調用write方法就順序地向輸出流寫入內容,直到流被關閉。
以上代碼見hyh.io--File/Fileinputstream/Fileoutputsream
以上輸入輸出流容易出現的問題就是:漢字亂碼
FileReader類和FileWriter類
與FileInputStream和FileOutputStream位元組流相對應的是FileReader和FileWriter字元流,其分別是Reader和Writer的子類,構造方法如下:
FileReader(String filename)
FileWriter(String filename)
使用位元組讀取文件時,位元組流不能直接操作Unicode字元,所以Java提供字元流。由於漢字在文件中佔用了兩個位元組,如果使用位元組流,讀取不當會出現亂碼現象,採用字元流就可以避免這個現象,因為在Unicode字元中,一個漢字被看做一個字元。
如果需要每次讀取一行數據,FileReader類沒有提供這樣的方法,所以必須把這個流再接到另外一個流傷,從後面的流中讀取一行數據。Java為其命名為BufferedReader類,構造方法:
BufferedReader(Reader in)
BufferedReader流能夠讀取文本行,方法是readLine()
通過向BufferedReader傳遞一個Reader對象,來創建一個BufferedReader對象,
FileReader inone=new FileReader(「Student.txt」);
BufferedReader intwo=BufferedReader(inone);
類似的可以將BufferedWriter流和FileWriter流連接在一起,然後使用BufferedWriter流將數據寫到目的地,
FileWriter tofile=new FileWriter(」hello.txt」);
BufferedWriter out=BufferedWriter(tofile)
然後out使用BufferedReader類的方法:
Write(String s,int off,int len)把字元串s寫入到文件中,off是s開始處的偏移量,len是寫入的字元數量
代碼詳情見hyh.javaio.FileReaderandWriter
代碼總結:FileReader和FileWriter可以進行漢字的讀取和寫入
BufferedReader有讀取行的功能,readLine()
RandomAccessFile類
RandomAccessFile類創建的流指向既可以作為源也可以作為目的地。換句話說,當想對一個文件進行讀寫操作時,可以創建一個指向該文件的RandomAccessFile流
構造方法:
RandomAccessFile(String name,String mode)參數name用來確定一個文件名,給出流的源。參數mode取r或者rw(只讀或者讀寫),決定對文件的訪問許可權。
RandomAccessFile(File file,String mode)參數file是一個File對象,給出源,同時也是目的地。參數mode決定訪問許可權。
該類中有一個seek(long a)方法,用來定位RandomAccessFile流的讀寫位置。參數a確定讀寫位置距離文件開頭的位元組個數。
還可以調用getFilePointer()方法或者流當前的讀寫位置
類方法P280:
關閉文件
獲取讀寫位置等。。。。。。。。
使用RandomAccessFile流實現一個通訊錄的錄入與顯示系統
見RandomAccessFile
數據流P284
數組流P286
對象流P288
序列化與對象克隆P290
文件鎖FileLockP293
Process類中的流P295
帶進度條的輸入流P298(這個是我自己整理的一部分的學習筆記,教材為Java2實用教程第三版(耿祥義編著),因為使用了word進行整理,首字母大寫忘記取消和一些代碼在myeclipse上,但是不妨礙你查看)
5. Java中有幾種類型的流
從輸入輸出方面來講有: 輸入流、輸出流
從流的內容上來講有:位元組流、字元流
6. java中的「流」是什麼
Java的流操作分為位元組流和字元流兩種。
1,位元組流
就是所有的寫操作都繼承自一個公共超類java.io.OutputStream類。
2,字元流
就是所有的寫操作都繼承於一個公共超類java.io.Writer類。
7. java 流的分類有哪些
1. 處理的數據單位不同,可分為:字元流,位元組流
位元組流河字元流的區別:(各自在什麼情況下使用)
字元流處理的單元為2個位元組的Unicode字元,分別操作字元、字元數組或字元串,而位元組流處理單元為1個位元組, 操作位元組和位元組數組。所以字元流是由Java虛擬機將位元組轉化為2個位元組的Unicode字元為單位的字元而成的,所以它對多國語言支持性比較好!如果是 音頻文件、圖片、歌曲,就用位元組流好點,如果是關繫到中文(文本)的,用字元流好點.
2.數據流方向不同,可分為:輸入流,輸出流
3.功能不同,可分為:節點流,處理流;
節點流:節點流從一個特定的數據源讀寫數據。
處理流:「連接」在已存在的流(節點流或處理流)之上通過對數據的處理為程序提供更為強大的讀寫功能。
看到左上角那個頭像沒,點一下這里有一群討論問題的朋友;
8. Java中,常見的流類型有哪些
首先應該從兩個角度來看:
從輸入輸出方面來講: Java中有輸入流和輸出流
從流的編碼方式上來講: Java中有位元組流和字元流
下面主要講解從編碼方式來看java幾種常見的類型的流。
對於位元組流而言:主要繼承的抽象類為 InputStream和OutputStream
對於字元流而言:主要繼承的抽象類為 InputStreamReader和OutputStreamReder
9. Java中流的分類都有哪些
大致是輸入\輸出流
他們包括以下具體的分類
1:位元組流
2:字元流
3:緩沖位元組流
4:緩沖字元流
10. Java中有幾種類型的流
位元組流類
抽象父類: InputStream,OutputStream
實現類包括如下幾種:
BufferedInputStream 緩沖流-過慮流
BufferedOutputStream
ByteArrayInputStream 位元組數組流-節點流
ByteArrayOutputStream
DataInputStream 處理JAVA標准數據流-過慮流
DataOutputStream
FileInputStream 處理文件IO流-節點流
FileOutputStream
FilterInputStream 實現過慮流-位元組過慮流父類
FilterOutputStream
PipedInputStream 管道流
PipedOutputStream
PrintStream 包含print() 和 println()
RandomAccessFile 支持隨機文件
字元流
抽象父類:Reader, Writer