栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础学习08--IO--字符流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础学习08--IO--字符流

目录

1.字符流概要

2.部分输入字符流类

3.使用 FileReader 和 FileWriter实现了复制文件内容的目的

4.Writer 输出字符流的可用方法


1.字符流概要

读取字符流类继承自抽象类 Reader,写入字符流继承自抽象类 Write。并且 Reader 的子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类还重写了 Writer 或 Reader 类定义的一些其他方法,以提供更高的效率或完成其他功能。

Reader 和 Writer 要解决的一个主要问题是国际化。原先的 I/O 类库只支持 8 位的字节流,因此不能很好地处理 16 位的 Unicode 字符。Unicode 是国际化的字符集,这样在增加了 Reader 和 Writer 之后,就可以自动在本地字符集和 Unicode 国际化字符集之间进行转换,程序员在应对国际化时不需要做过多额外的处理。

2.部分输入字符流类

FileReader :与 FileInputStream 对应,从文件系统中读取字符序列。CharArrayReader :与 ByteArrayInputStream 对应,从字符数组中读取数据。PipedReader :与 PipedInputStream 对应,从线程管道中读取字符序列。StringReader :从字符串中读取字符序列。

3.使用 FileReader 和 FileWriter实现了复制文件内容的目的
import java.io.*;
public class TestCharStream{
    public static void main(String[] args) throws IOException {
        FileReader in = null;
        FileWriter out = null;
        try{
            //其中args[0]代表程序执行时输入的第一个参数
            in = new FileReader(args[0]);
            out = new FileWriter(args[1]);
            //通过逐个读取、存入字符,实现文件复制
            int c;
            while ((c = in.read()) != -1) {
                out.write(c);
            }
        }catch(IOException e){
            System.out.println(e.getMessage());
        }finally{
            if(in != null){
                in.close();
            }
            if(out != null){
                out.close();
            }
        }
    }
}

 在程序里,main() 方法中有 args 这个字符串数组参数,通过这个参数,可以获取用户执行程序时输入的多个参数,其中 args[0] 代表程序执行时用户输入的第一个参数,args[1] 代表程序执行时用户输入的第二个参数,依次类推

4.Writer 输出字符流的可用方法

注意,这些方法操作的数据是 char 相关类型,不是 byte 类型

Writer append(char c):将指定字符 c 追加到此 Writer,此处是追加,不是覆盖。Writer append(CharSequence csq):将指定字符序列 csq 添加到此 Writer。Writer append(CharSequence csq, int start, int end):将指定字符序列 csq 的子序列,追加到此 Writer。void write(char[] cbuf):写入字符数组 cbuf。void write (char[] cbuf, int off, int len):写入字符数组 cbuf 的某一部分。void write(int c):写入单个字符 c。void write(String str):写入字符串 str。void write(String str, int off, int len):写入字符串 str 的某一部分。void close():关闭当前流。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775674.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号