java基础53 IO流技术(转换流)
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 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |