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

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

posted @ 2018-07-21 00:16  DSHORE  阅读(347)  评论(0编辑  收藏  举报