一、字元流filereader
1.字元流是什麼
* 字元流是可以直接讀寫字元的io流
* 字元流讀取字元, 就要先讀取到位元組資料, 然後轉為字元. 如果要寫出字元, 需要把字元轉為位元組再寫出.
2.filereader
* filereader類的read()方法可以按照字元大小讀取
filereader fr = new filereader("aaa.txt"); //建立輸入流物件,關聯aaa.txt
int ch;
while((ch = fr.read()) != -1)
fr.close(); //關流
字元流filewriter
filewriter類的write()方法可以自動把字元轉為位元組寫出
filewriter fw = new filewriter("aaa.txt");
fw.write("aaa");
fw.close();
字元流的拷貝
filereader fr = new filereader("a.txt");
filewriter fw = new filewriter("b.txt");
int ch;
while((ch = fr.read()) != -1)
fr.close();
fw.close();
二、什麼情況下使用字元流
* 字元流也可以拷貝文字檔案, 但不推薦使用. 因為讀取時會把位元組轉為字元, 寫出時還要把字元轉回位元組.
* 程式需要讀取一段文字, 或者需要寫出一段文字的時候可以使用字元流
* 讀取的時候是按照字元的大小讀取的,不會出現半個中文
* 寫出的時候可以直接將字串寫出,不用轉換為位元組陣列
字元流是否可以拷貝非純文字的檔案
* 不可以拷貝非純文字的檔案
* 因為在讀的時候會將位元組轉換為字元,在轉換過程中,可能找不到對應的字元,就會用?代替,寫出的時候會將字元轉換成位元組寫出去
* 如果是?,直接寫出,這樣寫出之後的檔案就亂了,看不了了
帶緩衝的字元流)
* bufferedreader的read()方法讀取字元時會一次讀取若干字元到緩衝區, 然後逐個返回給程式, 降低讀取檔案的次數, 提高效率
* bufferedwriter的write()方法寫出字元時會先寫到緩衝區, 緩衝區寫滿時才會寫到檔案, 降低寫檔案的次數, 提高效率
bufferedreader br = new bufferedreader(new filereader("aaa.txt")); //建立字元輸入流物件,關聯aaa.txt
bufferedwriter bw = new bufferedwriter(new filewriter("bbb.txt")); //建立字元輸出流物件,關聯bbb.txt
int ch;
while((ch = br.read()) != -1)
br.close(); //關流
bw.close();
readline()和newline()方法)
bufferedreader的readline()方法可以讀取一行字元(不包含換行符號)
bufferedwriter的newline()可以輸出乙個跨平台的換行符號"\r\n"
bufferedreader br = new bufferedreader(new filereader("aaa.txt"));
bufferedwriter bw = new bufferedwriter(new filewriter("bbb.txt"));
string line;
while((line = br.readline()) != null)
br.close();
bw.close();
三、裝飾設計模式
inte***ce coder
class student implements coder
}class heimastudent implements coder
@override
public void code()
} 使用指定的碼表讀寫字元)
* filereader是使用預設碼表讀取檔案, 如果需要使用指定碼表讀取, 那麼可以使用inputstreamreader(位元組流,編碼表)
* filewriter是使用預設碼表寫出檔案, 如果需要使用指定碼表寫出, 那麼可以使用outputstreamwriter(位元組流,編碼表)
bufferedreader br = //高效的用指定的編碼表讀
new bufferedreader(new inputstreamreader(new fileinputstream("utf-8.txt"), "utf-8"));
bufferedwriter bw = //高效的用指定的編碼表寫
new bufferedwriter(new outputstreamwriter(new fileoutputstream("gbk.txt"), "gbk"));
int ch;
while((ch = br.read()) != -1)
br.close();
bw.close();
C 讀取檔案流
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
node csv檔案流讀取
csv檔案流讀取,可以應對大檔案,資料截斷傳送,不會出現記憶體不足的情況 function user,date,filepath,callback var item fg var dbflag true var getcount 0 var tcount 0 api獲取資料條數 var otherc...
檔案流讀取 InputStream
bufferedreader轉換成string 注意 流關閉需要自行處理 param reader return string throws ioexception public static string bufferedreader2string bufferedreader reader th...