更新時(shí)間:2023-02-08 16:07:38 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2151次
1.字符輸入流
1.java.io.Reader:字符輸入流,抽象類(lèi)
具體的子類(lèi):字節(jié)輸入流通向字符輸入流的橋梁:InputStreamReader
2.字符緩沖輸入流:
構(gòu)造方法:
public InputStreamReader(InputStream in):使用默認(rèn)字符集進(jìn)行解碼
public InputStreamReader(InputStream in,String charsetName)throws UnsupportedEncodingException:使用指定的字符集解碼
讀的方式:
public int read() throws IOException:一次讀取一個(gè)字符
public int read(char[] cbuf)throws IOException:一次讀取一個(gè)字符數(shù)組
3.public class ReaderDemo{
public static void mian(String[] args) throws Exception{
//創(chuàng)建字符緩沖輸入流對(duì)象
InputStreamReader isr = new InputStreamReader(new FileInputStream("osw.txt"));
//一次讀取一個(gè)字符數(shù)組
char[] chs = new char[1024];
int len = 0;
while((len=isr.read(chs))!=-1){
sout(new String(chs,0,len));
}
isr.close();
}
}
2.字符輸出流
1.java.io.Writer:字符輸出流,抽象類(lèi)
具體的子類(lèi):OutputStreamWriter:字符轉(zhuǎn)換輸出流
2.構(gòu)造方法:
public OutputStreamWriter(OutputStream out):使用平臺(tái)默認(rèn)字符集編碼
public OutputStreamWriter(OutputStream out,String charsetName):使用指定的字符集進(jìn)行編碼
寫(xiě)的功能:
public void write(char[] cbuf) throws IOException:寫(xiě)一個(gè)字符數(shù)組
public abstract void write(char[] cbuf,int off,int len)throws IOException:從指定位置開(kāi)始寫(xiě)入一部分字符數(shù)組
public void write(String str)throws IOExceotion:寫(xiě)入字符串
public void write(String str,int off,int len)throws IOException:寫(xiě)字符串的一部分
public void write(int c)throws IOException:寫(xiě)一個(gè)字符
3.代碼實(shí)現(xiàn):
public class WriteDemo{
public static void main(String[] args) throw Exception{
//創(chuàng)建字符緩沖輸出流對(duì)象
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("osw.txt"));
//寫(xiě)數(shù)據(jù)
osw.write("hello,字符流我來(lái)了");
//寫(xiě)一個(gè)字符
osw.write(97);
//寫(xiě)一個(gè)字符數(shù)組
char[] chs = {"高","圓","圓"};
osw.write(chs);
//關(guān)閉前刷新流
osw.flush();
osw.close();
}
}
3.使用字符轉(zhuǎn)換輸入流和轉(zhuǎn)換輸出流來(lái)復(fù)制一個(gè)文本
1.字符流里直接操作文件--->字符轉(zhuǎn)換流的便捷類(lèi)
直接子類(lèi):public FileReader(String fileName) throws FileNotFoundException
public FileWriter(String fileName) throws IOException
2.代碼實(shí)現(xiàn):
public class CopyFileTest{
public static void main(String[] args) throws Exception{
method1("BufferedOutputStreamDemo.java","D:\\EE_2113\\day27_pm\\code\\copy4.java") ;
method2("BufferedOutputStreamDemo.java","D:\\EE_2113\\day27_pm\\code\\copy2.java") ;
}
//使用字符轉(zhuǎn)換流的便捷類(lèi)來(lái)直接操作文件---一次讀取一個(gè)字符數(shù)組
private static void method1(String sourch,String dest) throws Exception{
//創(chuàng)建FileReader類(lèi)對(duì)象
FileReader fr = new FileReader(source);
//創(chuàng)建FileWriter類(lèi)對(duì)象
FileWriter fw = new FileWriter(dest);
//一次讀取一個(gè)字符數(shù)組
char[] chs = new char[1024];
int len = 0;
while((len = fr.read(chs))!=-1){
fw.write(chs,0,len);
}
fw.close();
fr.close();
}
//使用字符轉(zhuǎn)換輸入流一次讀取一個(gè)字符數(shù)組
private static void method2(String source,String dest) throws Exception{
InputStreamReader isr = new InptStreamReader(new FileInputStream(source));
OutputStreamWriter osw = new OutputStreamReader(new FileOutputStream(dest));
char[] chs = new char[1024];
int len = 0 ;
while((len=isr.read(chs))!= -1){
osw.write(chs,0,len);
}
osw.close();
isr.close();
}
}
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"讓我們來(lái)看看字符輸出流",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為您務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743