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...