OutputStreamWriter类

2.4 OutputStreamWriter类

转换流java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符编码为字节。它的字符集可以由名称指定,也可以接受平台的默认字符集。

构造方法

  • OutputStreamWriter(OutputStream in): 创建一个使用默认字符集的字符流。
  • OutputStreamWriter(OutputStream in, String charsetName): 创建一个指定字符集的字符流。

构造举例,代码如下:

OutputStreamWriter isr = new OutputStreamWriter(new FileOutputStream("out.txt"));
OutputStreamWriter isr2 = new OutputStreamWriter(new FileOutputStream("out.txt") , "GBK");

指定编码写出

public class OutputDemo {
    public static void main(String[] args) throws IOException {
      	// 定义文件路径
        String FileName = "E:\\out.txt";
      	// 创建流对象,默认UTF8编码
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(FileName));
        // 写出数据
      	osw.write("你好"); // 保存为6个字节
        osw.close();
      	
		// 定义文件路径
		String FileName2 = "E:\\out2.txt";
     	// 创建流对象,指定GBK编码
        OutputStreamWriter osw2 = new OutputStreamWriter(new FileOutputStream(FileName2),"GBK");
        // 写出数据
      	osw2.write("你好");// 保存为4个字节
        osw2.close();
    }
}

转换流理解图解

转换流是字节与字符间的桥梁!

2.5 练习:转换文件编码

将GBK编码的文本文件,转换为UTF-8编码的文本文件。

案例分析

  1. 指定GBK编码的转换流,读取文本文件。
  2. 使用UTF-8编码的转换流,写出文本文件。

案例实现

public class TransDemo {
   public static void main(String[] args) {      
    	// 1.定义文件路径
     	String srcFile = "file_gbk.txt";
        String destFile = "file_utf8.txt";
		// 2.创建流对象
    	// 2.1 转换输入流,指定GBK编码
        InputStreamReader isr = new InputStreamReader(new FileInputStream(srcFile) , "GBK");
    	// 2.2 转换输出流,默认utf8编码
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(destFile));
		// 3.读写数据
    	// 3.1 定义数组
        char[] cbuf = new char[1024];
    	// 3.2 定义长度
        int len;
    	// 3.3 循环读取
        while ((len = isr.read(cbuf))!=-1) {
            // 循环写出
          	osw.write(cbuf,0,len);
        }
    	// 4.释放资源
        osw.close();
        isr.close();
  	}
}

相关推荐

  1. OutputStreamWriter

    2024-03-17 10:48:02       47 阅读
  2. File

    2024-03-17 10:48:02       56 阅读
  3. qmap

    2024-03-17 10:48:02       59 阅读
  4. Kotlin

    2024-03-17 10:48:02       61 阅读
  5. string<span style='color:red;'>类</span>

    string

    2024-03-17 10:48:02      47 阅读
  6. C ++<span style='color:red;'>类</span>

    C ++

    2024-03-17 10:48:02      66 阅读
  7. C++ :

    2024-03-17 10:48:02       52 阅读
  8. Kotlin-

    2024-03-17 10:48:02       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 10:48:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 10:48:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 10:48:02       87 阅读
  4. Python语言-面向对象

    2024-03-17 10:48:02       96 阅读

热门阅读

  1. Node.js URL模块教程

    2024-03-17 10:48:02       39 阅读
  2. 【Conda】详细讲解

    2024-03-17 10:48:02       42 阅读
  3. 【无标题】

    2024-03-17 10:48:02       38 阅读
  4. 论OpenCV在计算机视觉领域中的广泛应用及其影响

    2024-03-17 10:48:02       40 阅读
  5. 查看docker所有映射到宿主机的端口

    2024-03-17 10:48:02       40 阅读
  6. 重拾C++之菜鸟刷算法第13篇---回溯算法

    2024-03-17 10:48:02       39 阅读
  7. 代码分支管理

    2024-03-17 10:48:02       39 阅读
  8. 24年三月周末总结

    2024-03-17 10:48:02       44 阅读
  9. MongoDB yum安装教程

    2024-03-17 10:48:02       45 阅读
  10. mongodb的基本知识点

    2024-03-17 10:48:02       35 阅读
  11. QML与C++通信

    2024-03-17 10:48:02       37 阅读
  12. C语言实现选择排序算法

    2024-03-17 10:48:02       45 阅读