Java中IO流學習總結

2021-08-19 11:17:33 字數 1863 閱讀 3798

位元組流:可以處理所有以bit為單位儲存的檔案,也就是說可以處理所有的檔案,但是在處理字元上的速度不如字元流

注:其實在各個不同的型別中,輸入流到輸出流的套路基本都一樣。 

那就拿最簡單的fileoutputstream來舉例子吧 

從fileoutputstream到fileintputstream其實就是複製乙個檔案的過程,將檔案讀取到fileintputstream中,後輸出到fileoutputstream也就是相當於輸出到了硬碟的檔案中。 

我們可以以兩個桶為例,乙個桶為fileintputstream,另乙個桶為fileoutputstream,如果要把乙個桶裡的水轉移到另乙個桶中,我們首先需要乙個水瓢,一次次的舀水才能完成我們的需求。 

廢話不多說,直接上**:

public

static

void

main(string args) throws ioexception

fs.flush();

} catch (exception e)

}

file file = new file("d:/123.txt");

fileinputstream fis = new fileinputstream(file);

//同樣是叫做輸入流的桶

stringbuffer sb = new stringbuffer();

//把輸出流的桶換成了stringbuffer用來儲存字串

//其實也可以直接用string,但是stringbuffer速度更快。

byte buf = new

byte

[256];

//水瓢沒變

intlen =-1;

//測水瓢舀了多少水沒變

while ((len = fis.read(buf)) !=-1)

system.out.println(sb.tostring());

其實和前面的位元組流讀寫思路一樣,只是限制了檔案只能為字元型別的

public

static

void

main(string args) throws exception

//檢測結果檔案是否存在如果不存在便建立乙個

filereader fr = new filereader(file);

//設定字元讀入流用於向檔案(file)中讀資料

filewriter fw = new filewriter(file2);

//設定字元讀出流用於向檔案(file2)中寫資料

char ch = new

char[256];

//每次讀和寫的容器,或者說是傳送的媒介

int len = -1;

while((len = fr.read(ch)) != -1)

fw.flush();

fw.close();

fr.close();

system.out.println(sb.tostring());

//輸出文字檔案

}

使用工具:objectoutputstream,objectinputstream 

介紹:將物件以檔案的形式儲存在硬碟中,使之能更方便的傳輸。 

條件:必須實現serializable介面(實現了這個介面,但並不需要重寫任何方法)

class

demoobject

implements

serializable

public

class

iotest

}

Java之IO流學習總結 下

2.位元組流 inputstream 讀 outputstream 寫 由於位元組是二進位制資料,所以位元組流可以操作任何型別的資料,值得注意的是字元流使用的是字元陣列char而位元組流使用的是位元組陣列byte。下面來看乙個位元組流讀寫檔案的簡單例子。清單7,使用位元組流讀寫文字檔案 privat...

java的IO流總結

io流即輸入輸出流,流是一組有順序的,有起點和終點的位元組結合,是對資料傳輸的總稱。即資料在兩裝置間的傳輸稱為流,流的本質是資料傳輸。按照資料流的方向可分為 輸入流和輸出流 按照處理資料單位不同可以分為 位元組流和字元流。給出相應的io結構圖 1.io流之fileinputstream和fileou...

Java學習筆記 IO流

inputstream和outputstream是抽象類,他們是所有位元組輸入流和輸出流的父類。public static void main string args throws ioexceptionpublic static void main string args throws ioexc...