Java的IO流-转换流

乱码问题

java 复制代码
package com.itheima.d2;

import java.io.*;
import java.nio.charset.StandardCharsets;

public class Test4 {
    public static void main(String[] args) {
        try (
                //1、创建一个文件字符输入流与源文件接通
                //Reader fr = new FileReader("IO\\src\\itheima04.txt");
                Reader fr = new FileReader("IO\\src\\itheima.txt");
                //2、把文件字符输入流包装成缓冲字符输入流
                BufferedReader br = new BufferedReader(fr);
                ){

            String line;
            while ((line = br.readLine()) != null){
                System.out.println(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//乱码

字符输入转换流

public InputStreamReader(InputStream is, String charset)最常用

java 复制代码
package com.itheima.d2;

import java.io.*;

public class Test5 {
    public static void main(String[] args) {
        try(
                //1、得到文件的原始字节流
                InputStream is = new FileInputStream("IO\\src\\itheima.txt");
                //2、把原始的字节输入流按照指定的字符集编码转换成字符输入流
                Reader isr = new InputStreamReader(is, "GBK");
                //3、把字符输入流包装成缓冲字符输入流
                BufferedReader br = new BufferedReader(isr);
                ) {
            String line;
            while ((line = br.readLine()) != null){}
            System.out.println(line);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

字符输出转换流

第一种方法默认用UTF-8输出

java 复制代码
package com.itheima.d2;

import java.io.*;

public class Test6 {
    public static void main(String[] args) {
        try (
                //1、创建一个文件字节输出流
                OutputStream os = new FileOutputStream("IO/src/itheima07.txt");
                //2、把原始的字节输出流,按照指定的字符集编码转换成字符输出转换流
                Writer osw = new OutputStreamWriter(os, "GBK");
                //3、把字符输出流包装成缓冲字符输出流
                BufferedWriter bw = new BufferedWriter(osw);
                ){

            bw.write("我是好人");
            bw.write("老忒双击666");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
相关推荐
揽星河..2 分钟前
【C语言】底层程序设计
c语言·开发语言
JavaPub-rodert4 分钟前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang
海的透彻1 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat1 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
北京中科新远科技1 小时前
高速交换机端口预算怎么做?下行、上联、拆分和冗余计算框架
开发语言·php
xiaoye-duck2 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
后台模板学习2 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one2 小时前
算法--构造
java·数据结构·算法
SL_staff2 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
AI源码2 小时前
基于 Python 的短视频用户行为分析系统
开发语言·python