15 InputStreamReader 桥连接

/*
事先在当前目录下准备好一个test.txt 的文本文件,要求该文本文件是使用GBK 编码的
多行文本文件。如:
test.txt
窗前明月光
疑是地上霜
举头望明月
低头思故乡
利用字节流+桥转换读入这个文本文件,然后按照行的顺序,以UTF-8 的编码方式,写
到test2.txt 文件中,例:
test2.txt
低头思故乡
举头望明月
疑是地上霜
窗前明月光

 */

import java.io.*;
import java.util.*;

public class D2 {

    static void write(String s) throws IOException {
        FileWriter fw = new FileWriter("test.txt", true);
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(s);
        bw.newLine();
        bw.close();

    }

    // 转换为UTF-8存入
    static void read() throws IOException {
        // 桥转换类 OutputStreamWriter 将字节流转换为字符流
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
                "test2.txt", true), "UTF-8");// 转换成UTF-8编码
        InputStreamReader isr = new InputStreamReader(new FileInputStream(
                "test.txt"), "GBK"); // 源文件的编码为GBK
        BufferedReader br = new BufferedReader(isr);
        BufferedWriter bw = new BufferedWriter(osw);
        String str = null;
        while ((str = br.readLine()) != null) {
            bw.write(str);
            bw.newLine();

        }
        bw.close();

    }

    public static void main(String args[]) throws IOException {
        String libai = "窗前明月光 疑是地上霜 举头望明月 低头思故乡";
        String str[] = libai.split(" ");// 按空格拆分字符串
        for (int i = 0; i < str.length; i++)
            write(str[i]); // 连续写多次 此时 字节流对象需要为FileOutputStream(String
                            // path,true)
        read();

    }

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值