亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

掌握 Java OutputStreamWriter:字符转字节桥梁与实战示例

Java OutputStreamWriter 类

OutputStreamWriter 位于 java.io,作为桥梁将字符数据转为字节数据。继承抽象 Writer,配合 FileOutputStream 等字节流工作。

因 Unicode 字符可能跨多字节,OutputStreamWriter 确保写入字节流时正确应用字符编码。


创建 OutputStreamWriter

导入必要类:

import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.nio.charset.Charset;

实例化 FileOutputStream 目标文件,再包装为 OutputStreamWriter。默认构造器用平台默认字符集,可显式设 UTF-8 或 UTF-16 保证跨环境一致:

// 默认字符集
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("output.txt"));
// 显式 UTF-8
OutputStreamWriter writerUtf8 = new OutputStreamWriter(
    new FileOutputStream("output_utf8.txt"), Charset.forName("UTF-8"));

OutputStreamWriter 关键方法

write() 方法


示例:写文本到文件

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class Main {
    public static void main(String[] args) {
        String data = "This is a line of text inside the file.";
        try {
            FileOutputStream fileOut = new FileOutputStream("output.txt");
            OutputStreamWriter writer = new OutputStreamWriter(fileOut, Charset.forName("UTF-8"));
            writer.write(data);
            writer.flush();
            writer.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行后创建 output.txt,内容:

This is a line of text inside the file.

getEncoding() 方法

用 getEncoding() 获取当前使用的字符集:

FileOutputStream file = new FileOutputStream("output.txt");
OutputStreamWriter defaultWriter = new OutputStreamWriter(file);
OutputStreamWriter utf8Writer = new OutputStreamWriter(file, Charset.forName("UTF-8"));
System.out.println("Default encoding: " + defaultWriter.getEncoding());
System.out.println("UTF-8 encoding: " + utf8Writer.getEncoding());

输出

Default encoding: Cp1252
UTF-8 encoding: UTF-8

未指定字符集时返回平台默认。显式设置保证行为一致。

提示: 精确控制用 Charset.forName()。详见官方 Java Charset API。


close() 方法

始终调用 close() 释放系统资源。关闭后 writer 不可再用。


其他实用方法

方法描述
flush()立即将缓冲数据写入底层流
append()便捷追加字符或字符串到 writer

完整参考见官方 Java OutputStreamWriter Javadoc。

java

  1. 深入理解 Java final 关键字:变量、方法与类的不可变性
  2. Java instanceof 运算符完全指南:用法、继承与接口检查
  3. 精通 Java 继承:核心概念、类型与实战示例
  4. 深入理解 Java 静态嵌套类:用法、差异与实战示例
  5. 精通 Java 匿名内部类:定义、语法与实战示例
  6. Java 单例模式详解:安全实现与使用指南
  7. 精通 Java 反射:运行时检查类、方法与字段
  8. 精通 Java ArrayList:操作、方法与最佳实践
  9. Java Stack 类全面指南:用法、核心方法与实战示例
  10. 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
  11. 掌握 Java 泛型:构建可复用、类型安全的代码
  12. 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除