java字符流转换成字节流

欣喜 Java经验 发布时间:2025-01-24 11:35:45 阅读数:16109 1
我们都知道java中分为字符流(`Reader` 和 `Writer`)和
                    字节流(`InputStream` 和 `OutputStream`)
这是java中两种不同的数据格式

==============================================================================================
字符流:用于处理字符数据
字节流:用于处理原始字节数据。
有时候,我们需要对两种数据进行相关转换处理

==============================================================================================
那么如何将字符流转换为字节流呢?下文笔者将一一道来,如下所示
==============================================================================================
字符流转换为字节流
   可使用 `OutputStreamWriter` 类
   `OutputStreamWriter` 是一个字符流到字节流的桥梁,它将字符编码成字节

import java.io.*;

public class CharToByteStreamExample {
    public static void main(String[] args) {
        try {
            // 创建一个 OutputStream 对象
            OutputStream outputStream = new FileOutputStream("output.txt");

            // 创建一个 OutputStreamWriter 对象,将 OutputStream 转换为 Writer
            Writer writer = new OutputStreamWriter(outputStream, "UTF-8");

            // 使用 Writer 写入字符数据
            writer.write("Hello, World!");

            // 关闭 Writer 和 OutputStream
            writer.close();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



字节流转换为字符流
    将字节流转换为字符流
	可使用 `InputStreamReader` 类
	`InputStreamReader` 是一个字节流到字符流的桥梁,它将字节解码成字符
	
import java.io.*;

public class ByteToCharStreamExample {
    public static void main(String[] args) {
        try {
            // 创建一个 InputStream 对象
            InputStream inputStream = new FileInputStream("input.txt");

            // 创建一个 InputStreamReader 对象,将 InputStream 转换为 Reader
            Reader reader = new InputStreamReader(inputStream, "UTF-8");

            // 使用 Reader 读取字符数据
            int character;
            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }

            // 关闭 Reader 和 InputStream
            reader.close();
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

字符流转字节流的示例


将字符流转换为字节流并使用缓冲:
 
import java.io.*;

public class BufferedCharToByteStreamExample {
    public static void main(String[] args) {
        try {
            // 创建一个 OutputStream 对象
            OutputStream outputStream = new FileOutputStream("output.txt");

            // 创建一个 OutputStreamWriter 对象,并使用 BufferedWriter 缓冲
            Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));

            // 使用 Writer 写入字符数据
            writer.write("Hello, World!");

            // 关闭 Writer 和 OutputStream
            writer.close();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 

将字节流转换为字符流并使用缓冲:
 
import java.io.*;

public class BufferedByteToCharStreamExample {
    public static void main(String[] args) {
        try {
            // 创建一个 InputStream 对象
            InputStream inputStream = new FileInputStream("input.txt");

            // 创建一个 InputStreamReader 对象,并使用 BufferedReader 缓冲
            Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));

            // 使用 Reader 读取字符数据
            int character;
            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }

            // 关闭 Reader 和 InputStream
            reader.close();
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202501/17376971148225.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者