Java 字节流和字符流是什么?怎么用?

createh53个月前 (01-26)技术教程32

Java IO提供了两种流:字节流(byte stream)和字符流(character stream)。字节流用于处理二进制数据,而字符流则用于处理文本数据。

Java字节流用InputStream(输入)和OutputStream(输出)类来实现。InputStream类和OutputStream类是所有字节输入输出流的基类,它们提供了纯抽象接口,用于读取字节和写入字节。通过InputSteam和OutputStream类,可以完成对文件、网络、屏幕等数据源的读取和写入。

Java字符流用Reader(输入)和Writer(输出)类来实现。和字节流一样,Reader和Writer类也是所有字符输入输出流的基类。这些类定义了一组操作字符数据的方法,而且大多数方法都是面向文本的。字符输入输出流可以使用Reader和Writer类,完成对文本文件、网络数据或其他字符集输出流的读取和写入。

下面是Java字节流和字符流的基本使用示例:

import java.io.*;

public class Example {
    public static void main(String[] args) throws IOException {

        // 字节流示例
        InputStream inputStream = new FileInputStream("test.txt");
        OutputStream outputStream = new FileOutputStream("output.txt");

        try {
            int data;
            while ((data = inputStream.read()) != -1) {
                outputStream.write(data);
            }
        } finally {
            if (inputStream != null) {
                inputStream.close();
            }
            if (outputStream != null) {
                outputStream.close();
            }
        }
        
        // 字符流示例
        Reader reader = new FileReader("test.txt");
        Writer writer = new FileWriter("output.txt");

        try {
            int data;
            while ((data = reader.read()) != -1) {
                writer.write(data);
            }
        } finally {
            if (reader != null) {
                reader.close();
            }
            if (writer != null) {
                writer.close();
            }
        }
    }
}

这里的代码示例演示了如何使用Java字节流和字符流,首先创建一个输入流和输出流(字节流或字符流),然后使用while循环读取字节或字符数据

相关文章

JAVA快速入门——输入和输出(java输入输出是什么)

输出如果你看过快速入门第一篇,就会注意到下面的代码,向屏幕输出 Hello WorldSystem.out.println("Hello World")println是print line的缩写,输出...

java安全编码指南之:字符串和编码

简介字符串是我们日常编码过程中使用到最多的java类型了。全球各个地区的语言不同,即使使用了Unicode也会因为编码格式的不同采用不同的编码方式,如UTF-8,UTF-16,UTF-32等。我们在使...

JAVA字符编码和字符集详解(java字符编码格式)

一、JAVA字符集 Java标准字符集:所谓Java标准字符集,就是Java平台支持的字符集:US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16。 U...

又被“教育”了,Java中那些让我傻傻分不清楚的7个小细节

前言最近我们通过sonar扫描代码的时候,发现了很多问题。除了常规的bug和安全漏洞之外,还有几处方法用法错误,引起了我极大的兴趣。我为什么会对这几个方法这么感兴趣呢?因为它们极具迷惑性,可能会让我们...

Java常用运算符的使用(java%运算符)

Java常用运算符概述在Java编程体系中,运算符有着举足轻重的地位,它们宛如一个个精巧的工具,是处理数据和变量、构建逻辑以及执行各类计算的基础所在。通过运算符对数据进行操作,程序员能够实现复杂多样的...

Java数组数据操作之字符的判段(java字符串数组长度怎么算)

/***Title:数组数据操作之字符的判段*Description@author author*/public class myArray032 {//初始化数组变量char[] cStr={'a'...