1. 程式人生 > >java基礎54 IO流技術(轉換流)

java基礎54 IO流技術(轉換流)

shadow bili cnblogs lin iter checkbox exc center div

1、轉換流

1.輸入字節的轉換流:InputStreamReader是字節流轉為字符流的橋梁,可以把輸入字節流轉換為輸入字符流
2.輸出字節流的轉換流:OutputStreamWriter是字符流通向字節流的橋梁(相對於數據來說的);可以把輸出字節流轉換為輸出字符流

2、轉換流的作用

1.如果目前獲取的是一個字節流需要轉換為字符流,這個時候就可以使用轉換流. 字節流---->字符流
2.使用轉換流可以指定編碼進行讀寫文件

3、實例

 1 package com.dhb.file;
 2 
 3 import java.io.BufferedReader;
4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.FileNotFoundException; 7 import java.io.FileOutputStream; 8 import java.io.IOException; 9 import java.io.InputStream; 10 import java.io.InputStreamReader; 11 import java.io.OutputStreamWriter; 12 13 /** 14 * @author DSHORE / 2018-7-20
15 * 16 */ 17 public class Demo27 { 18 public static void main(String[] args) throws IOException { 19 //readTest(); 20 //writerTest(); 21 //writerTest2(); 22 readTest2(); 23 } 24 //使用輸入字節流色轉換流指定編碼讀取文件 25 public static void readTest2() throws IOException{ 26 File file=new
File("F:\\a.txt"); 27 FileInputStream fileInputStream=new FileInputStream(file); 28 InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,"utf-8"); 29 char[] buf=new char[1024]; 30 int length=0; 31 while((length=inputStreamReader.read(buf))!=-1){ 32 System.out.println(new String(buf,0,length)); 33 } 34 } 35 //使用輸出字節流轉換流指定編碼 36 public static void writerTest2() throws FileNotFoundException, IOException{ 37 File file=new File("F:\\a.txt"); 38 //建立數據的輸出通道 39 FileOutputStream fileOutputStream=new FileOutputStream(file); 40 // 可以把輸出字節流轉換為輸出字符流 41 OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream, "utf-8"); 42 outputStreamWriter.write("你好嗎!"); 43 //關閉資源 44 outputStreamWriter.close(); 45 } 46 // 47 public static void writerTest() throws FileNotFoundException, IOException{ 48 File file=new File("F:\\a.txt"); 49 //建立數據的輸出通道 50 FileOutputStream fileOutputStream=new FileOutputStream(file,true);//true的作用:在文件的原有數據的末尾繼續添加數據;如果不寫true,原有的數據將被現在要寫進去的數據替代掉。 51 // 可以把輸出字節流轉換為輸出字符流 52 OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream); 53 outputStreamWriter.write("你好嗎!"); 54 //關閉資源 55 outputStreamWriter.close(); 56 } 57 58 public static void readTest() throws IOException{ 59 InputStream in=System.in;//獲取標準的輸入流 60 //System.out.println("讀到的字符:"+(char)in.read()); 61 //把字節流轉換為字符流 62 InputStreamReader inputStreamReader=new InputStreamReader(in); 63 //使用字符緩沖流 64 BufferedReader bufferedReader=new BufferedReader(inputStreamReader); 65 String line=null; 66 while((line=bufferedReader.readLine())!=null){ 67 System.out.println("內容:"+line); 68 } 69 } 70 }

原創作者:DSHORE

作者主頁:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9344716.html

歡迎轉載,轉載務必說明出處。(如果本文對您有幫助,可以點擊一下右下角的 推薦,或評論,謝謝!

G M T
文本轉語音功能僅限200個字符
選項 : 歷史 : 反饋 : Donate 關閉

java基礎54 IO流技術(轉換流)