位元組流 字元

2021-08-22 19:47:42 字數 2728 閱讀 9264

io流的分類和功能

按照方向分:輸入流(讀),輸出流(寫)

按照種類:位元組流(任何檔案),字元流(純文字檔案)

位元組輸入流 inputstream fileinputstream

位元組輸出流 outputstream fileoutstream

字元輸入流 reader filereader

字元輸出流writer filewriter

使用位元組輸出流寫出資料到檔案

建立:outputstream ops = new fileoutputstream("檔案路徑")

outputstream常用方法:

public void write(int b):寫單個位元組

public void write(byte buf):寫整個位元組陣列

public void write(byte buf, int offset,int length):寫位元組陣列的一部分

public void close():關閉流.

fileoutputstream構造方法:

public fileoutputstream(string filename):引數是檔案路徑名

public fileoutputstream(file file):引數是檔案物件

使用位元組輸入流讀取資料到程式

建立:inputstrean in = new fileinputstream("檔案路徑名")

inputstream常用方法:

public int read():讀取單個位元組

public int read(byte buf):讀取位元組陣列,返回有效個數

public void close():關閉流。

fileinputstream構造方法:

public fileinputstream(string filename):引數是檔案路徑名

public fileinputstream(file file):引數是資料夾物件

讀取資料read(byte)方法的原理

fileinputstream in = new fileinputstream("檔案路徑")

byte buf = new byte[size] // 緩衝陣列

int len; // 有效個數

while((len = in.read(buf)) != -1){

// 使用位元組陣列有效部分

使用位元組流完成檔案的複製

通過位元組陣列的方式複製

使用filewriter寫資料到檔案

建立:wirter writer = new filewriter("檔案路徑")

writer常用方法:

public void write(int ch):寫單個字元

public void write(char buf):寫整個字元陣列

public void write(char buf, int offset, int length):寫字元陣列的一部分

public void write(string str):寫整個字串

public void write(string str, int offset, int length):寫字串的一部分

public void close():關閉流

filewriter構造方法:

public filewriter(string filename):引數是檔案路徑名

public filewriter(file file):引數是檔案物件。

filewriter中關閉和重新整理方法的區別

1. flush重新整理方法:立刻清空緩衝區,後面還能繼續用流。

2. close關閉方法:包含乙個flush動作,一旦關閉,後面不能繼續用流了。

寫資料:write --> jvm當中的緩衝區 --> 滿了自動交給os --> 硬碟。

讀資料:read <-- jvm當中的緩衝區 <-- 空了自動找os要 <-- 硬碟。

fileoutputstream裡面沒有緩衝區,所以flush方法一點作用都沒有。

fileinputstream/filereader/filewriter裡面都有byte[8192]緩衝陣列。

後三者當中:

讀資料:一次性讀取最多8192位元組,每次read方法只是取出一些使用,用完了,就再讀取最多8192位元組。

寫資料:每次write都將資料暫存到緩衝區當中,8192位元組滿了,自動清空重新整理,交給作業系統。

使用filewriter寫資料實現換行和追加寫

windows的換行:\r\n(這是兩個字元)

linux/macos的換行:\n

使用filereader讀資料

int ch; //代表單個字元

while((ch = reader.read()) != -1){

//**

使用filereader讀資料一次乙個字元陣列

char buf = new char[size]; 緩衝字元陣列

int len; 有效個數

while((len = reader.read(buf) != -1)){

// 使用字元陣列的有效部分

使用properties的load方法載入檔案中配置資訊

properties props = new properties();

filereader fr = new filereader("配置檔案的路徑名");

props.load(fr);

fr.close();

位元組流 字元流

fileoutputstream 構造 構造方法摘要 fileoutputstream file file 建立輸出流,不是以續寫方式關聯 fileoutputstream string name 建立輸出流,不是以續寫方式關聯 作用 1.建立乙個輸出流物件 2.如果你關聯的檔案,或者檔案的字串不存...

位元組流,字元流

在程式中所有的資料都是以流的方式進行傳輸或者儲存的,程式需要資料的時候需要使用輸入流讀取資料,而當程式需要將一些資料儲存起來的時候,就要使用輸出流。可以通過下面的輸入輸出流關係圖表示這種方式。位元組流 位元組流主要操作byte型別資料,以byte陣列為準,主要操作類是outputstream類和in...

IO 字元流 位元組流

io流 流按運算元據分為兩種 位元組流與字元流 流按流向分為 輸入流 輸出流 位元組流的抽象基類 inputstream outputstream 字元流的抽象基類 reader witer 這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾。字元流 寫入流writer 用於操作檔案的writ...