日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。

發布時間:2025/3/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?InputStreamReader 和 OutputStreamWriter類使用方法簡單介紹。

一、InputStreamReader類

InputStreamReader 將字節流轉換為字符流。是字節流通向字符流的橋梁。假設不指定字符集編碼,該解碼過程將使用平臺默認的字符編碼,如:GBK。

構造方法:

InputStreamReader isr = new InputStreamReader(InputStream in);//構造一個默認編碼集的InputStreamReader

InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//構造一個指定編碼集的InputStreamReader類。

參數 in對象通過 InputStream in = System.in;獲得。//讀取鍵盤上的數據。

????????????????????????????????或者? ? InputStream in = new FileInputStream(String fileName);//讀取文件里的數據。能夠看出FileInputStream 為InputStream的子類。

主要方法:int read();//讀取單個字符。

????????????????? int read(char []cbuf);//將讀取到的字符存到數組中。返回讀取的字符數。

public static void transReadNoBuf() throws IOException {/*** 沒有緩沖區,僅僅能使用read()方法。*///讀取字節流 // InputStream in = System.in;//讀取鍵盤的輸入。InputStream in = new FileInputStream("D:\\demo.txt");//讀取文件的數據。//將字節流向字符流的轉換。要啟用從字節到字符的有效轉換,能夠提前從底層流讀取很多其它的字節.InputStreamReader isr = new InputStreamReader(in);//讀取 // InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\demo.txt"));//綜合到一句。char []cha = new char[1024];int len = isr.read(cha);System.out.println(new String(cha,0,len));isr.close();}public static void transReadByBuf() throws IOException {/*** 使用緩沖區 能夠使用緩沖區對象的 read() 和 readLine()方法。*///讀取字節流 // InputStream in = System.in;//讀取鍵盤上的數據InputStream in = new FileInputStream("D:\\demo.txt");//讀取文件上的數據。//將字節流向字符流的轉換。InputStreamReader isr = new InputStreamReader(in);//讀取//創建字符流緩沖區BufferedReader bufr = new BufferedReader(isr);//緩沖 // BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\demo.txt")));能夠綜合到一句。/* int ch =0;ch = bufr.read();System.out.println((char)ch);*/String line = null;while((line = bufr.readLine())!=null){System.out.println(line);}isr.close();}


?

二、OutputStreamWriter類

OutputStreamWriter 將字節流轉換為字符流。是字節流通向字符流的橋梁。假設不指定字符集編碼,該解碼過程將使用平臺默認的字符編碼,如:GBK。

構造方法:

OutputStreamWriter osw = new OutputStreamWriter(OutputStream out);//構造一個默認編碼集的OutputStreamWriter

OutputStreamWriter?osw = new OutputStreamWriter(OutputStream out,String charsetName);//構造一個指定編碼集的OutputStreamWriter類。

參數 out對象通過 InputStream?out = System.out;獲得。//打印到控制臺上。

?????????????????????????????? 或者? ? InputStream?out = new FileoutputStream(String fileName);//輸出到文件里。能夠看出FileoutputStream 為outputStream的子類。

主要方法:void write(int c);//將單個字符寫入。

??????????????????viod write(String str,int off,int len);//將字符串某部分寫入。

????????????????? void flush();//將該流中的緩沖數據刷到目的地中去。

?

public static void transWriteNoBuf() throws IOException {OutputStream out = System.out;//打印到控制臺 // OutputStream out = new FileOutputStream("D:\\demo.txt");//打印到文件OutputStreamWriter osr = new OutputStreamWriter(out);//輸出 // OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("D:\\demo.txt"));//兩句能夠綜合到一句。 // int ch = 97;//a // int ch = 20320;//你 // osr.write(ch);String str = "你好嗎?";//你好嗎?osr.write(str);osr.flush();osr.close();}public static void transWriteByBuf() throws IOException { // OutputStream out = System.out;//打印到控制臺。OutputStream out = new FileOutputStream("D:\\demo.txt");//打印到文件。OutputStreamWriter osr = new OutputStreamWriter(out);//輸出 // OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("D:\\demo.txt"));//綜合到一句。BufferedWriter bufw = new BufferedWriter(osr);//緩沖 // int ch = 97;//a // int ch = 20320;//你 // osr.write(ch);String str = "你好嗎?\r\n我非常好!";//你好嗎?bufw.write(str);bufw.flush();bufw.close();}


?流轉換程序1:

package IOtest;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter;public class TransStreamtest {/*** 基本的類: in1, InputStream* 創建對象 InputStream in = System.in;* in2, InputStreamReader 沒有readLine()方法* 主要方法:* read()讀取單個字符,一個漢字也為一個字符。* read(char[] cbuf)將字符讀入數組。* close().關閉此流和相關聯資源。* in3, BufferedReader 有read(),readLine()方法。* out1, OutputStream* 創建對象 OutputStream in = System.out;* out2, OutputStreamWriter * 主要方法:* write(int c)//寫入單個字符。* write(char[] cbuf,int off,int len)//寫入數組的某一部分* write(String str,int off,int len)//寫入字符串煩人某一部分。* flush();//刷新該流中的緩沖。* close();* out3, BufferedWriteer 有Write(int ch),newLine()方法。* * * @throws IOException */public static void main(String[] args) throws IOException { // transReadByBuf(); // transReadNoBuf();transWriteNoBuf(); // transWriteByBuf();}public static void transWriteNoBuf() throws IOException {OutputStream out = System.out;//打印到控制臺 // OutputStream out = new FileOutputStream("D:\\demo.txt");//打印到文件OutputStreamWriter osr = new OutputStreamWriter(out);//輸出 // OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("D:\\demo.txt"));//兩句能夠綜合到一句。 // int ch = 97;//a // int ch = 20320;//你 // osr.write(ch);String str = "你好嗎?";//你好嗎?osr.write(str);osr.flush();osr.close();}public static void transWriteByBuf() throws IOException { // OutputStream out = System.out;//打印到控制臺。OutputStream out = new FileOutputStream("D:\\demo.txt");//打印到文件。OutputStreamWriter osr = new OutputStreamWriter(out);//輸出 // OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("D:\\demo.txt"));//綜合到一句。BufferedWriter bufw = new BufferedWriter(osr);//緩沖 // int ch = 97;//a // int ch = 20320;//你 // osr.write(ch);String str = "你好嗎?\r\n我非常好!";//你好嗎?bufw.write(str);bufw.flush();bufw.close();}public static void transReadNoBuf() throws IOException {/*** 沒有緩沖區,僅僅能使用read()方法。*///讀取字節流 // InputStream in = System.in;//讀取鍵盤的輸入。InputStream in = new FileInputStream("D:\\demo.txt");//讀取文件的數據。//將字節流向字符流的轉換。要啟用從字節到字符的有效轉換,能夠提前從底層流讀取很多其它的字節.InputStreamReader isr = new InputStreamReader(in);//讀取 // InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\demo.txt"));//綜合到一句。char []cha = new char[1024];int len = isr.read(cha);System.out.println(new String(cha,0,len));isr.close();}public static void transReadByBuf() throws IOException {/*** 使用緩沖區 能夠使用緩沖區對象的 read() 和 readLine()方法。*///讀取字節流 // InputStream in = System.in;//讀取鍵盤上的數據InputStream in = new FileInputStream("D:\\demo.txt");//讀取文件上的數據。//將字節流向字符流的轉換。InputStreamReader isr = new InputStreamReader(in);//讀取//創建字符流緩沖區BufferedReader bufr = new BufferedReader(isr);//緩沖 // BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\demo.txt")));能夠綜合到一句。/* int ch =0;ch = bufr.read();System.out.println((char)ch);*/String line = null;while((line = bufr.readLine())!=null){System.out.println(line);}isr.close();} }

?流轉換程序2:

package readKey;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter;public class TransStreamDemo3 {/*** @param args* @throws IOException */public static void main(String[] args) throws IOException { // writeText_1(); // writeText_2(); // writeText_3(); // ReadTest_1(); // ReadTest_2(); // ReadTest_3();} public static void ReadTest_3() throws IOException {InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\utf-8.txt"),"UTF-8");char []ch = new char[20];int len = isr.read(ch);System.out.println(new String(ch,0,len) );isr.close(); }public static void ReadTest_2() throws IOException {InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\utf-8.txt"),"GBK");char []ch = new char[20];int len = isr.read(ch);System.out.println(new String(ch,0,len) );isr.close(); }public static void ReadTest_1() throws IOException {FileReader fr = new FileReader("D:\\demo.txt");char []ch = new char[20];int len = fr.read(ch);System.out.println(new String(ch,0,len) );fr.close(); }public static void writeText_3() throws IOException {OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\utf-8.txt"),"UTF-8");osw.write("你好嗎");osw.close(); }public static void writeText_2() throws IOException {FileWriter fw = new FileWriter("D:\\gbk1.txt");fw.write("你好啊");fw.close();}public static void writeText_1() throws IOException {OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\gbk.txt"),"GBK");/**和上面的等同 * FileWriter fw = new FileWriter("D:\\gbk1.txt");* 操作文件的字節流 + 默認的編碼表*/osw.write("你好嗎");osw.close();} }


?

總結

以上是生活随笔為你收集整理的InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。