• 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

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

  • 相关阅读:
    最小生成树的解法
    51nod 1212 无向图最小生成树
    greater()和less()的使用
    51nod1183 编辑距离
    51nod 1181 质数中的质数(质数筛法)
    upper_bound和lower_bound的用法
    线段树最全模板
    bryce1010专题训练——线段树习题汇总
    51nod 1174 区间中最大的数
    51nod 1113 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/dshore123/p/9344716.html
Copyright © 2020-2023  润新知